在Ruby Watir中自动执行javascript splash下载

时间:2018-01-30 02:07:45

标签: ruby watir

如果由Javascript启动下载(通常是通过提交表单的一些Javascript代码,可以动态添加到页面中),在Watir中强制文件下载的标准方法都不适用于我:我仍然获取浏览器文件下载确认弹出窗口,无法在Watir中编写脚本。更糟糕的是,看起来甚至传统方法在遵循下载文件的传统链接时起作用,现在在最新的浏览器中被破坏,请看另一个问题:   How to download a file using Watir 6.0

有关如何做的任何建议吗?

2 个答案:

答案 0 :(得分:1)

现在的文档在这里:http://watir.com/guides/downloads/

prefs = {
  download: {
    prompt_for_download: false,
    default_directory: '/path/to/dir'
  }
}

b = Watir::Browser.new :chrome, options: {prefs: prefs}

但最佳做法是不使用Watir或Selenium来处理下载。理想情况下,文件的创建和访问是在单元或集成测试中处理的。 Watir与浏览器交互,而下载部分是操作系统功能。这就是说,可能无法完全满足您的需求。

答案 1 :(得分:0)

如果遇到类似的问题,我启用了logger.level,它帮助我确定是否为“chromeOptions”设置了prefs

Selenium::WebDriver.logger.level = :info

prefs = {
        download: {
            prompt_for_download: false,
            default_directory: "#{FigNewton.download_files}"
        }
    }

args = ['--ignore-certificate-errors', '--disable-popup-blocking', '--disable-translate', '--disable-infobars']

browser = Watir::Browser.new :chrome, options: {prefs: prefs, args: args }

我不是说这会解决您的问题,但只是想提供有关logger.level的信息。我发现它很有用。