You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Watir版本升级后Chrome默认下载目录配置失效问题求助

解决Watir 6.19中Chrome默认下载目录配置失效的问题

这种情况我升级Watir版本时也碰到过,核心原因是Watir 6.x后期版本对ChromeOptions的解析逻辑和旧版本不同,直接传prefs哈希的方式已经不再被正确识别。试试下面几个针对性方案:

方案1:改用Selenium ChromeOptions的add_preference方法

Watir底层依赖Selenium,新版更推荐直接用Selenium的ChromeOptions实例来配置浏览器偏好,替代原来的哈希传参方式。修改代码如下:

def setup
  # 创建ChromeOptions实例
  options = Selenium::WebDriver::Chrome::Options.new
  # 添加下载相关偏好配置
  options.add_preference(:download, {
    prompt_for_download: false,
    default_directory: @download_dir
  })
  # 初始化Watir浏览器
  Watir::Browser.new :chrome, options: options
end

方案2:添加兼容性偏好配置

新版Chrome对下载目录的安全限制更严格,你可以额外添加两个配置项,大概率能解决目录不生效的问题:

def setup
  options = Selenium::WebDriver::Chrome::Options.new
  options.add_preference(:download, {
    prompt_for_download: false,
    default_directory: @download_dir,
    directory_upgrade: true # 允许覆盖已存在的默认目录设置
  })
  options.add_preference(:safebrowsing, enabled: false) # 关闭安全浏览检查,避免阻止自定义下载目录
  Watir::Browser.new :chrome, options: options
end

方案3:确保下载目录是绝对路径

一定要确认@download_dir是绝对路径,相对路径在新版ChromeDriver中可能无法被正确解析。可以用Ruby的File.expand_path生成可靠的绝对路径:

# 示例:基于当前脚本目录生成downloads文件夹的绝对路径
@download_dir = File.expand_path('./downloads', __dir__)

方案4:验证ChromeDriver与Chrome版本兼容性

Watir 6.19对应的Selenium版本为3.x,需要确保你的ChromeDriver版本和本地安装的Chrome浏览器版本完全兼容。版本不匹配不仅会导致下载配置失效,还可能引发其他隐性问题。

按照上面的步骤逐一排查,应该能解决你的问题!

内容的提问来源于stack exchange,提问作者Andrew Heckman

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.29 15:12:44