我正在网页上进行自动化测试,该网页会在 clouser 使用 driver.close()
时弹出警报窗口。
该警报用于确认询问我是否确定并显示“留下”或“离开”按钮。
现在,当执行 driver.close()
时,弹出窗口显示 driver.close()
被“卡住”,等待响应,但我无法执行driver.switchto().alert()
响应(accept()
或 dismiss()
),因为驱动程序正在等待...
使用其他线程没有帮助。
最终,在长时间超时后,close 抛出异常....
有什么想法吗? 这是一个非常微不足道的场景,但很难用 selenium api 从代码中处理。
最佳答案
解决方案最终如 mrfreester 所建议。 由于我也想测试警报,因此我首先通过调用关闭窗口的 JS 来启动警报。 接下来,我使用网络驱动程序与警报交互。
第一步:
((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()
关于c# - Selenium - 关闭带有确认警报的窗口。 C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41758813/