Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.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
在Ruby Watir中自动下载javascript splash_Ruby_Watir - Fatal编程技术网

在Ruby Watir中自动下载javascript splash

在Ruby Watir中自动下载javascript splash,ruby,watir,Ruby,Watir,如果下载是由Javascript启动的(通常由提交表单的Javascript代码启动,表单可以动态添加到页面中),那么在Watir中强制文件下载的标准方法对我来说都不起作用:我仍然会看到浏览器文件下载确认弹出窗口,无法在Watir中编写脚本。更糟糕的是,在最新的浏览器中,即使是按照常规链接下载文件的传统方法,现在也被打破了。请看另一个问题: 关于如何做有什么建议吗?现在这里有相关的文档: 不过,最佳实践是不要使用Watir或Selenium来处理下载。理想情况下,文件的创建和访问在单元或集成测

如果下载是由Javascript启动的(通常由提交表单的Javascript代码启动,表单可以动态添加到页面中),那么在Watir中强制文件下载的标准方法对我来说都不起作用:我仍然会看到浏览器文件下载确认弹出窗口,无法在Watir中编写脚本。更糟糕的是,在最新的浏览器中,即使是按照常规链接下载文件的传统方法,现在也被打破了。请看另一个问题:


关于如何做有什么建议吗?

现在这里有相关的文档:


不过,最佳实践是不要使用Watir或Selenium来处理下载。理想情况下,文件的创建和访问在单元或集成测试中进行。Watir与浏览器交互,而下载部分是操作系统的功能。这就是说,它可能不可能完全做到你需要的

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


我并不是说这将解决您的问题,但是我只是想向您提供关于logger.level的信息。我觉得这很有帮助。

是的,我已经尝试过了,但在最新的firefox和chrome浏览器中,它不起作用或不再起作用。两种方法都试过了,我仍然可以看到浏览器文件下载弹出窗口。我不是在做TDD,只是在做网页抓取,所以我需要实际获取文件。我是说,您最好通过这样做绕过浏览器和操作系统对话框:我不知道该怎么说,因为其他一些人报告说此设置成功。我计划在Watir的下一个版本中花很多额外的时间来更新配置代码,所以我个人会很快深入研究这个问题。
prefs = {
  download: {
    prompt_for_download: false,
    default_directory: '/path/to/dir'
  }
}

b = Watir::Browser.new :chrome, options: {prefs: 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 }