在我的网络应用程序上,点击下载按钮后,弹出一条内容为“你想打开或保存”abc.txt的弹出消息吗?“使用3个按钮(“打开”,“保存”和“取消”)将显示在页面底部。
我正在尝试使用以下代码关闭/退出此浏览器会话:
@driver.execute_script "window.onbeforeunload = function(e){};"
@driver.quit
但是,浏览器不是(但应该)关闭。我正在使用 Selenium Ruby Webdriver 。请指导我解决此问题的方法。非常感谢。
请注意,使用上面的代码,我可以关闭IE9浏览器,其中显示弹出消息“此页面要求您确认要离开 - 您输入的数据很多都不会被保存”和“离开页面” “和”保持在页面“按钮成功。但是,如果弹出的消息中包含“你想打开或保存”abc.txt“来自此站点的内容吗?”,代码不起作用。显示3个按钮(“打开”,“保存”和“取消”)。
答案 0 :(得分:0)
WebDriver无法控制这些类型的“保存文件”对话框提示。
请仔细阅读这篇关于这个主题的文章(注意,他的例子是用Java编写的,但是它们都可以很容易地移植,而且Ruby中的代码更少)。 http://ardesco.lazerycode.com/index.php/2012/07/how-to-download-files-with-selenium-and-why-you-shouldnt/
因此,我建议不要点击相关链接并尝试处理对话框。取而代之的是,抓住href
值并向其发起Net::HTTP
请求,就像这样SO响应显示如何操作:https://stackoverflow.com/a/4581116/1221475。然后,您可以使用标准的Ruby和文件解析器检查文件中是否有正确的内容。