2016-03-21 20 views
1

ログインしようとしたときにモーダルダイアログボックスが表示されるシナリオがあります。Seleniumのモーダルダイアログボックスの処理方法は?

webdriverがモーダルダイアログボックスにアクセスできないため、ログインシナリオを処理できません。これを処理する方法はありますか?

は、下の画像で詳細を参照してください: enter image description here

public class TwitterLogin 
{ 

    static WebDriver driver; 
    static String baseUrl="myURL"; 

    public static void main(String[] args) 
    { 
     driver= new FirefoxDriver(); 
     driver.get(baseUrl); 
     driver.manage().window().maximize(); 

     //******Click on Login Link**********// 
     WebElement LoginButton= driver.findElement(By.xpath("//button[@class='Button StreamsLogin js-login']")); 
     LoginButton.click(); 

     WebElement UsernameTextbox= driver.findElement(By.xpath("//input[contains(@name,'email]')]")); 
     UsernameTextbox.clear(); 
     UsernameTextbox.sendKeys("uName"); 

     WebElement PasswdTextbox=driver.findElement(By.xpath("//input[contains(@type,'password')]")); 
     PasswdTextbox.clear(); 
     PasswdTextbox.sendKeys("1234"); 

    } 

} 

ログインボタンをクリックした後、私は、ユーザー名&パスワードを入力することはできませんよ。

+0

何のコードあなたはそれのために書かれていますか?投稿を編集してコードを追加してください(http://stackoverflow.com/posts/36126795/edit)。 – JRodDynamite

+0

こんにちはJason、 私は起動URLまでコードを試して、ログインボタンをクリックしました。しかし、xpathを使って要素を直接見つけようとすると、起こりません。つまり、私はそのモーダルダイアログボックスをオンにできません。そのダイアログボックスを切り替える方法はありますか? –

+0

申し訳ありませんが、あなたが書いたコードが表示されない限り、本当にあなたを助けることはできません。 XPathが正しくない可能性があります。あるいは、問題は他のものかもしれません。 – JRodDynamite

答えて

1

だけで、ログインボタンをクリックした後、次のコードを記述します。

Thread.sleep(3000); //i use here wait implicit wait. Try to use explicit wait here. 

driver.findElement(By.cssSelector("a.Icon.Icon--close.Icon--medium.dismiss")).click(); 
+0

は、この働いたバーラトですか? – noor

+0

ありがとうございました。大きなタイムアウトを追加して試しましたが、今は動作しています。私のコードは –

+0

です。チックマークをクリックして回答を受け入れることができると思います...... :) – noor

関連する問題