【问题标题】:Selenium remotely download file in IE c#Selenium 在 IE c# 中远程下载文件
【发布时间】:2019-03-07 16:30:40
【问题描述】:

我想在 IE 下远程运行下载测试。我正在寻找任何方法(在远程机器上),即使我必须使用另一个 诸如 autoit 之类的工具(这对于远程方面似乎并不准确)。

我的问题: 当 IEWebdriver 单击下载按钮时,它会打开一个对话框以询问 Save asOpenCancel 但我无法点击它们。在angularJS 上制作的 UI 逻辑。单击按钮事件生成发生ng-click 并调用从服务器接收文件的方法。这就是为什么我不能自己建立对服务器的请求,接收文件并将他保存在必要的目录中。

【问题讨论】:

    标签: c# selenium internet-explorer selenium-webdriver autotest


    【解决方案1】:

    通常有两种方法可以让浏览器自动下载文件,而无需确认提示。

    我目前没有使用 Internet Explorer 驱动程序进行测试,但我相当确信您必须在其设置选项卡中手动配置浏览器,告诉它不要提示下载某种类型的文件。

    Selenium 无法自行关闭此类警报,其方式类似于主 UI 线程上的浏览器警报。

    某些浏览器驱动程序,例如 Firefox,允许在浏览器设置中设置此行为,以及从 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");
    

    这并不能直接解决您的问题,因为我现在无法确认任何事情,但这应该有助于为您指明正确的方向。

    【讨论】:

    • 我认为这种方式不适合。我不能必须在其设置选项卡中手动配置浏览器,告诉它不要提示下载某种类型。因为它会影响其他测试的运行。
    【解决方案2】:

    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

    Download a file in IE using Selenium

    【讨论】:

      猜你喜欢
      • 2017-06-01
      • 2018-04-14
      • 2012-08-17
      • 1970-01-01
      • 1970-01-01
      • 2019-01-27
      • 1970-01-01
      • 1970-01-01
      • 2014-09-27
      相关资源
      最近更新 更多