Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 从Selenium中测试onbeforeunload事件_Java_Javascript_Html_Selenium_Onbeforeunload - Fatal编程技术网

Java 从Selenium中测试onbeforeunload事件

Java 从Selenium中测试onbeforeunload事件,java,javascript,html,selenium,onbeforeunload,Java,Javascript,Html,Selenium,Onbeforeunload,我正在尝试为一个网页编写一个Selenium测试,该网页使用onbeforeunload事件在用户离开之前提示用户。Selenium似乎无法识别出现的确认对话框,也无法提供点击OK或Cancel的方法。有没有办法做到这一点?如果相关的话,我正在使用Java Selenium驱动程序。警告:这提供了另一种解决方案 Watij,我能帮上忙。或者,如果您对ruby感到满意,watir可以提供帮助--您可以编写一个用户扩展(或者只是storeEval中的一些JavaScript等)来测试设置的windo

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

警告:这提供了另一种解决方案


Watij,我能帮上忙。或者,如果您对ruby感到满意,watir可以提供帮助--

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

当我面临使用Selenium对浏览器控制有限的问题时,我转向plugin,它解决了我的问题,如果只针对一个浏览器平台。

我刚刚为我的一个应用程序做了这件事,如果用户在文档处于未保存状态时离开页面,
onbeforeuload
处理程序会弹出提示。Python代码:

driver.switch_to.alert.accept()
Java的等价物是:

driver.switchTo().alert().accept();
如果警报不存在,上述代码将失败,出现
NoAlertPresentException
,因此在接受提示之前无需进行单独的测试来检查是否存在

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


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

我最终没有这样做(我的需求发生了变化,因此我最好还是使用常规警报),但这看起来会奏效,并且与Selenium处理其他警报测试的方式非常接近。只需添加
js_eval“window.onbeforeuload=null”
在为我开门之前。(Ruby中的selenium客户端,但您应该能够轻松地翻译成其他语言)