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,这是长期维护的最优方案:
- 修改Gemfile,指定兼容版本:
gem 'watir', '>= 7.0' gem 'watir-rails', '>= 3.0' - 执行bundle更新命令:
bundle update watir watir-rails - 保留你修改后的初始化代码即可正常运行:
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系列:
- 修改Gemfile,锁定Selenium版本:
gem 'selenium-webdriver', '~> 3.142' - 执行bundle更新命令:
bundle update selenium-webdriver - 此时无论是旧的
args写法,还是你修改后的options写法,均可正常工作。
内容的提问来源于stack exchange,提问作者Eleventy
相关产品推荐
相关产品推荐

