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

更新最新版Chrome后出现undefined method `execute_script'报错如何解决

问题原因

该报错是Selenium 4.0.x版本与Chrome 96+内置的Chrome DevTools Protocol(CDP)返回格式不兼容导致的,Selenium 4.0.x版本未适配Chrome 96调整后的CDP返回结构,错误将驱动实例返回为Hash对象,因此调用execute_script方法时触发Hash类不存在该方法的异常。

解决方案

方案1(推荐):升级selenium-webdriver到兼容版本

Selenium官方在4.1.0版本已修复该兼容问题,直接修改Gemfile中selenium-webdriver的版本约束即可:

gem "selenium-webdriver", "~> 4.1.0"

修改完成后执行命令更新依赖:
bundle update selenium-webdriver

方案2:临时补丁适配(适用于暂时无法升级Selenium版本的场景)

在测试框架启动配置文件(如Rails项目的spec_helper.rb/rails_helper.rb,或非Rails项目的测试初始化脚本)中加入以下适配代码:

# 修复Selenium 4.0.x 与 Chrome 96+ 的CDP返回兼容问题
Capybara::Selenium::Driver.class_eval do
  def bridge
    @bridge ||= begin
      origin_bridge = super
      origin_bridge.is_a?(Hash) ? Selenium::WebDriver::Driver.new(options[:browser], options).bridge : origin_bridge
    end
  end
end

添加后重启测试服务即可生效。

方案3:保留Chrome 95版本(不推荐)

若暂时不做任何代码修改,可继续使用Chrome 95版本运行测试,但该版本存在已知安全漏洞,仅建议作为临时过渡方案。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 15:45:09