【问题标题】:How to override "downlod multiple files" popup如何覆盖“下载多个文件”弹出窗口
【发布时间】:2021-05-17 08:35:07
【问题描述】:

我使用 watir 来实现浏览器自动化。我有一个显示“下载多个文件”的弹出窗口,需要在文件下载之前单击它。我怎样才能覆盖这个? 我已正确尝试了所有设置,但效果不佳。

我用 chrome chrome=88.0.4324.150

    download_dir = "#{Dir.pwd}/downloads".gsub('/', '\\')
Dir.mkdir download_dir unless Dir.exist? download_dir
args     = %w(--disable-infobars)
prefs    = { download: { prompt_for_download: false, default_directory: download_dir }}

       

  ie=Watir::Browser.new(:chrome, options: { args: args }, prefs: prefs)

我做了一些进一步的比较。我机器上的默认 chrome 允许多次下载,但 watir 启动的不允许。我如何解决它?

【问题讨论】:

  • 区别在于配置文件。所以加载相同的配置文件。或者在关闭此开关的情况下创建配置文件并加载 thar 配置文件。
  • 如何通过 Watir 加载配置文件?

标签: ruby selenium-chromedriver watir


【解决方案1】:
prefs = {'profile.default_content_setting_values.automatic_downloads' => 2}
Watir::Browser.new(:chrome, options: {prefs: prefs})
  1. Watir 功能不是最好的,所以这并不像好的那样简单。它将在基于 Selenium 4 的 Watir 7 中得到修复
  2. 使用 Selenium Capabilities 类无法正确转换为 w3c 语法,只是旧的 JSON Wire Protocol 语法,没有帮助
  3. 默认情况下,Selenium 3 代码会将 Symbol 的所有内容从蛇形案例转换为骆驼案例。所以密钥必须是String。 Selenium 4 修复了专门针对 Chrome 首选项的问题。
  4. 关闭该切换的正确首选项是“profile.default_content_setting_values.automatic_downloads”
  5. 对于这些首选项,默认值为 0,启用 1,禁用 2。除了传入哪个值似乎无关紧要;如果您传入任何内容,它似乎会关闭该设置。 /耸肩

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-29
    • 2023-03-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多