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

Watir浏览器初始化失败:Selenium参数错误求助

解决Watir与Selenium 4.x兼容导致的unknown keyword: :desired_capabilities错误

问题根源

你遇到的ArgumentError: unknown keyword: :desired_capabilities错误,本质是Watir版本与Selenium 4.x不兼容:

  • 当前使用的Watir 6.19.1版本,内部仍在采用Selenium 3.x的desired_capabilities参数传递浏览器配置;
  • 而Selenium 4.x已彻底移除对desired_capabilities关键字的支持,直接导致参数匹配失败。

即便你按照警告提示改用options参数写法,旧版Watir的内部逻辑依然会向Selenium传递废弃的desired_capabilities参数,因此错误无法消除。

解决方案

提供两种可行路径,可根据实际需求选择:

方案1:升级Watir到兼容Selenium 4的版本

Watir从7.0版本开始全面适配Selenium 4,这是长期维护的最优方案:

  1. 修改Gemfile,指定兼容版本:
    gem 'watir', '>= 7.0'
    gem 'watir-rails', '>= 3.0'
    
  2. 执行bundle更新命令:
    bundle update watir watir-rails
    
  3. 保留你修改后的初始化代码即可正常运行:
    BROWSER_OPTIONS = %w[--headless --no-sandbox --disable-dev-shm-usage --disable-gpu --remote-debugging-port=9222]
    browser = Watir::Browser.new :chrome, options: { args: BROWSER_OPTIONS }
    

方案2:降级Selenium到3.x版本

如果暂时无法升级Watir,可将Selenium降级到与Watir 6.x兼容的3.x系列:

  1. 修改Gemfile,锁定Selenium版本:
    gem 'selenium-webdriver', '~> 3.142'
    
  2. 执行bundle更新命令:
    bundle update selenium-webdriver
    
  3. 此时无论是旧的args写法,还是你修改后的options写法,均可正常工作。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 16:35:34