12

我正在尝试为使用 onbeforeunload 事件在离开前提示用户的网页编写 Selenium 测试。Selenium 似乎无法识别出现的确认对话框,也无法提供点击 OK 或 Cancel 的方法。有没有办法做到这一点?如果相关的话,我正在使用 Java Selenium 驱动程序。

4

4 回答 4

4

您可以编写一个用户扩展(或只是 storeEval 中的一些 JavaScript 等)来测试是否设置了 window.onbeforeunload,然后在从页面继续之前将其替换为 null。丑陋,但应该让你离开页面。

于 2008-10-02T21:19:35.813 回答
1

我只需要为我的应用程序执行此操作,onbeforeunload如果用户在文档处于未保存状态时离开页面,处理程序会显示提示。Python代码:

driver.switch_to.alert.accept()

Java 等价物是:

driver.switchTo().alert().accept();

如果警报不存在,上面的代码将失败,NoAlertPresentException因此在接受提示之前无需单独测试来检查存在。

我正在运行 Selenium 2.43.0,但我认为这已经有一段时间了。

如果我根本不希望出现提示,因为这不是我正在测试的内容,我会在浏览器中运行自定义 JavaScript以在离开页面之前设置window.onbeforeunload为。null我把它放在测试拆解代码中。

于 2014-11-06T19:15:01.500 回答
1

faced same problem with "beforeunlaod" event listner, LUMINUS! a chrome addon that helps me just block the event listener in the plugin thats all..

于 2021-11-04T18:31:37.103 回答
0

当我面对使用 Selenium 对浏览器的有限控制时,我求助于MozLab插件,它解决了我的问题,如果仅适用于一个浏览器平台。

于 2008-10-02T21:46:54.233 回答