无法处理提醒讯息

时间:2016-08-19 18:41:29

标签: java selenium selenium-webdriver selenium-chromedriver

我正在使用 Java Selenium 来编写测试。我的 Chrome浏览器版本为52.0,我的selenium驱动程序为2.53。我的目标网页上有一个按钮,点击后会显示一个警告。我一直用:

 try{  wait.until(ExpectedConditions.elementToBeClickable(By.xpath("blabla"))).click();
                    Thread.sleep(1000);
                    wait.until(ExpectedConditions.alertIsPresent());
                    driverChrome.switchTo().alert().accept();
   }
    catch(Exception e){
    e.printStackTrace();
    }

处理警报,但从今天早上开始,当测试点击按钮时,警报会弹出,但之后就会抛出警告:

org.openqa.selenium.WebDriverException: unknown error: cannot determine loading status
from unexpected alert open
 (Session info: chrome=52.0.2743.116)
 (Driver info: chromedriver=2.20.353145 (343b531d31eeb933ec778dbcf7081628a1396067),platform=Windows NT 6.1 SP1 x86_64) (WARNING: The server did not provide any stacktrace information)
Command duration or timeout: 33 milliseconds

它甚至没有到达第二和第三行!! 第一行抛出错误

wait.until(ExpectedConditions.elementToBeClickable(By.xpath("blabla"))).click();

2 个答案:

答案 0 :(得分:2)

您正在使用chromedriver版本2.20。

此处:https://bugs.chromium.org/p/chromedriver/issues/detail?id=1224&colspec=ID%20Status%20Pri%20Owner%20Summary被告知在2.22版本中此问题已修复。

因此,如果可能,您可以通过将chromedriver版本升级到2.22来验证问题是否已解决。

答案 1 :(得分:1)

当点击的按钮位于iframe内部时,我遇到过与Chrome相同的事情。刚刚在firefox中运行测试。请参阅铬虫追踪器中记录的这两个问题 -

https://bugs.chromium.org/p/chromedriver/issues/detail?id=1362

https://bugs.chromium.org/p/chromedriver/issues/detail?id=1224

     try{ 
 wait.until(ExpectedConditions.elementToBeClickable(By.xpath("blabla"))).click();

       }
        catch(Exception e){
        e.printStackTrace();
        }
    Thread.sleep(1000);
                        wait.until(ExpectedConditions.alertIsPresent());
                        driverChrome.switchTo().alert().accept();