Selenium - 关闭一个带有确认警报的窗口。 C#

时间:2017-01-20 08:07:14

标签: c# selenium selenium-webdriver

我正在自动化网页上的测试,该网页使用driver.close()在clouser上弹出一个Alert窗口。 警报是确认询问我是否确定并公开“停留”或“离开”按钮。

现在,当driver.close()执行时,弹出窗口显示driver.close()“卡住”,等待响应,但我无法执行driver.switchto().alert()响应(accept()dismiss())因为司机正在等待...... 使用其他线程没有帮助。 最终,在长时间超时后,关闭会抛出异常....

有什么想法吗? 这是一个微不足道的场景,但很难用selenium api处理代码。

2 个答案:

答案 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()