我正在使用 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();
答案 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();