2016-06-29 15 views
0

Javascriptアラートの処理を練習しようとしています。 w3schoolのウェブサイトでiframeから出てくるアラートを受け取りたい。Selenium 2を使用してiframeでjavascriptアラートを処理する

WebDriver driver = new ChromeDriver(); 
    driver.get("http://www.w3schools.com/js/tryit.asp?filename=tryjs_alert"); 
    driver.switchTo().frame("iframeResult"); 

    driver.findElement(By.xpath("/html/body/button")).click(); 
    WebElement editable = driver.switchTo().activeElement(); 
    editable.sendKeys("enter");   

    //handle pop alert 
    String mainPage = driver.getWindowHandle(); 
    Alert alt = driver.switchTo().alert(); 
    alt.accept(); 
    driver.switchTo().window(mainPage); 

私はちょうど警告ボックスを取得しています。私はそれを受け入れることができません。 スレッド "main"の例外org.openqa.selenium.UnhandledAlertException:予期しないアラートが開かれています:{アラート・テキスト:私はアラート・ボックスです!}

答えて

1

すべての正しいコードがあります。エラーは、アラートがアップしたときにアラートを処理する以外の操作を実行しようとしたときに発生します。アラートを処理するために不要なコードがいくつかあります。私は下のコードでそれを削除しました。物事を戻すことはできますが、アラートを起動したり処理したりする前または後に追加する必要があります。

WebDriver driver = new ChromeDriver(); 
driver.get("http://www.w3schools.com/js/tryit.asp?filename=tryjs_alert"); 
driver.switchTo().frame("iframeResult"); 

driver.findElement(By.xpath("/html/body/button")).click(); // this launches the alert 
driver.switchTo().alert().accept(); // this one line accepts the alert 
driver.switchTo().defaultContent(); // you will probably need to switch back out of the IFRAME at some point to access the main page again so I added this line 

私が強くお勧めすることは、あなたが選んだIDEでデバッグに関するいくつかのガイドを読むことです。あなたのコードをデバッグする方法を学んだら、それを通って、問題がどこにあったのかを確かめ、修正することができます。

関連する問題