java - 无法处理警报消息

标签 java selenium selenium-webdriver selenium-chromedriver

我正在使用 JavaSelenium 编写测试。我的 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();

最佳答案

您正在使用 chromedriver 2.20 版。

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

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

关于java - 无法处理警报消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39045816/

相关文章:

java - ResultSet 不为 null 仍然 resultet.next() 返回 false

ruby - 我将如何从 anchor 列表中搜索 `/aems/dic/list`?

java - 出现异常 : Unable to locate element

java - Hibernate:在项目范围内定义类型映射

python - Google map 错误列表索引必须是整数或切片,而不是 WebElement

javascript - 没有缓存的 Selenium Chrome 驱动程序

python - 为什么 selenium/python/chromedriver 无法识别 chrome 开发者控制台中的有效 xpath?

selenium - 如何在 Selenium WebDriver 3 中最小化浏览器窗口

python - 下载完成后如何关闭浏览器?

java - 尝试从 GWT 标签获取内部文本