我无法处理来自Chrome的ALert弹出窗口,我不断收到以下错误。 org.openqa.selenium.UnhandledAlertException:意外警报打开 (会话信息:chrome = 29.0.1547.66) (驱动程序信息:chromedriver = 2.3,platform = Windows NT 5.1 SP3 x86)。
这是我到目前为止所尝试的内容。当我到达显示错误的页面时:
driver.switchTo().alert.accept();
也试过了。
Alert alert = driver.switchTo().alert();
alert.accept();
也是同样的错误。
如果有任何解决方案,我们将不胜感激。
答案 0 :(得分:1)
实际上,如果您没有正确处理警报,则会出现(UnhandledAlertException)否则,如果您在关闭警报之前对驱动程序实例执行任何操作。
实施例
步骤1:点击按钮//这将导致获得提醒
步骤2://这里需要提醒句柄
在步骤2中,如果对驱动程序实例执行任何其他操作,则不会处理警报,而是会抛出UnhandledAlertException异常。
答案 1 :(得分:1)
可能是您的ChromeDriver版本。我不建议总是更新到最新版本的东西。缺陷比比皆是。
我正在使用ChromeDriver win32_2.0,它运行正常。 Try that version.
答案 2 :(得分:0)
我在IE中遇到了这个问题。但是通过两个简单的改变,它开始像FF一样工作:
1)按照建议https://stackoverflow.com/a/20611297/2872258我在创建IED驱动程序时设置了另一个选项 - unexpectedAlertBehaviour =忽略
2)我还有WebDriverWait for Alert,将ImplicityWait设置为" 0"在一开始 - 根据@Santoshsarma说这是另一个问题。
可能也是Chrome的解决方案。
答案 3 :(得分:0)
我尝试捕获stackoverflow错误,它对我来说是一种解决方法。
try
{
driver.findElement(By.xpath('xpath')).click(); // command that will trigger the alert window
}
catch (StackOverflowError e)
{
driver.switchTo().alert().dismiss(); // or driver.switchTo().alert().accept();
// the rest of the scripts can be added here
}