我想在IE下远程运行下载测试。我正在寻找任何方法来做这件事(在远程机器上),即使我必须使用另一个工具,如autoit (对于远程方面,这似乎并不准确)。
我的问题是:当IEWebdriver点击“下载”按钮时,它会打开一个对话框,要求我输入Save as
、Open
或Cancel
,但我无法点击它们。在angularJS
上生成的UI逻辑。在点击按钮后,事件生成发生了ng-click
,并调用了从服务器接收文件的方法,这就是为什么我不能自己建立对服务器的请求,接收文档并将其保存在必要的目录中。
发布于 2019-03-12 22:20:19
通常有两种方法可以让浏览器自动下载文件,而不需要确认提示。
我目前没有测试Internext Explorer驱动程序,但我相当有信心,您必须在浏览器的设置选项卡中手动配置浏览器,告诉它不要提示下载特定类型的内容。
Selenium不能以类似于主UI线程上的浏览器警报的方式自行消除这种类型的警报。
有些浏览器驱动程序允许在浏览器设置中和从传递到驱动程序构造函数的FirefoxProfile对象中设置此行为。以下是如何在firefox中完成此操作的示例:
FirefoxProfile profile = new FirefoxProfile();
profile.SetPreference("browser.download.dir", "%path%");
profile.SetPreference("browser.download.folderList", 2);
profile.SetPreference("browser.helperApps.neverAsk.saveToDisk", "text/csv,application/pdf,application/octet-stream,application/vnd.ms-excel,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
这并不能直接解决你的问题,因为我现在没有能力尝试来确认任何事情,但这应该会帮助你找到正确的方向。
发布于 2019-04-09 16:32:50
IE弹出窗口是由IE原生代码控制的,我们不能用Selenium调用这些方法。如果你想在IE中下载文件,你可以考虑使用其他工具,如Reboot,AutoIT来处理IE控制的元素。
请参考以下文档:
http://ardesco.lazerycode.com/testing/webdriver/2012/07/25/how-to-download-files-with-selenium-and-why-you-shouldnt.html
https://stackoverflow.com/questions/55048624
复制相似问题