我正在自动化网页上的测试,该网页使用driver.close()
在clouser上弹出一个Alert窗口。
警报是确认询问我是否确定并公开“停留”或“离开”按钮。
现在,当driver.close()
执行时,弹出窗口显示driver.close()
“卡住”,等待响应,但我无法执行driver.switchto().alert()
响应(accept()
或dismiss()
)因为司机正在等待......
使用其他线程没有帮助。
最终,在长时间超时后,关闭会抛出异常....
有什么想法吗? 这是一个微不足道的场景,但很难用selenium api处理代码。
答案 0 :(得分:1)
您可以在关闭浏览器(driver.close()
)之前执行以下代码行,以避免弹出外观:
IJavaScriptExecutor js = driver as IJavaScriptExecutor;
js.ExecuteScript("window.onbeforeunload = null;");
答案 1 :(得分:1)
解决方案最终建议为 mrfreester 。 由于我也想测试警报,我首先通过调用JS关闭窗口来启动警报。 接下来,我使用网络驱动程序与警报进行交互。
第1步:
((JavascriptExecutor)driver).executeScript("window.close()" )
第2步:
等待警报并进行交互(请参阅此处的Java示例:Alert handling in Selenium WebDriver (selenium 2) with Java)
Alert alert = driver.switchTo().alert();
alert.accept(); // or alert.dismiss()