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

标签 c# selenium selenium-webdriver

我正在网页上进行自动化测试,该网页会在 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/

相关文章:

google-chrome - 如何在 Selenium 自动化测试中使用 puppeteer 进行 headless Chrome

python - 如何在selenium中获取当前选项卡的url?

java - 如何将字符串 arraylist 转换为 double 以便 arraylist 可以返回排序值

c# - HTTP 属性与路由相同 - ASP.Net Core API?

c# - 仅按日期比较日期时间值

python - selenium python ie 错误 - 浏览器缩放

java - TestNG 参数无法识别字符串参数

java - Selenium WebDriver 无法找到页面源中不存在但通过开发人员工具查看时存在于 HTML 中的元素

c# - C#套接字BeginAccept事件停止触发

c# - 如何在 Nancy 中编写接受 JSON 的 post 方法以及如何从 C# 客户端调用它?