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

Jenkins运行Selenium测试时ChromeDriver与Chrome版本不匹配报错求助

问题根因说明
  • 你的初始判断完全颠倒了错误逻辑:报错信息This version of ChromeDriver only supports Chrome version 95 Current browser version is 93.0.4577.63的含义是当前调用的ChromeDriver是95版本,要求配套的Chrome浏览器大版本必须为95,但你服务器上安装的Chrome浏览器只有93/94版本,并不是你以为的ChromeDriver版本太低。
  • Jenkins和SSH登录返回的版本不一致,是因为两者运行时的环境变量PATH优先级不同:Jenkins执行任务使用的用户(通常是jenkins用户)的PATH路径下,存在一个95版本的ChromeDriver,优先级高于你修改的/usr/bin路径下的驱动;而你SSH登录使用的用户PATH优先读取/usr/bin下的93版本驱动,才会出现版本不一致的情况。
  • 绝对不能将ChromeDriver重命名为google-chrome:前者是Chrome的驱动程序,后者是Chrome浏览器本身的二进制文件,二者功能完全不同,重命名会导致所有Chrome相关调用全部异常。
解决步骤
  1. 首先确认服务器上Chrome浏览器的正式版本,执行命令:
    /usr/bin/google-chrome --version
    记录返回的大版本号(比如返回94.x.x.x,大版本就是94)。
  2. 下载和浏览器大版本完全匹配的ChromeDriver,不要使用未发布稳定版的测试版本驱动。
  3. 在Jenkins流水线中新增临时执行步骤,运行如下命令确认Jenkins实际调用的ChromeDriver路径:
which chromedriver
chromedriver --version

将对应路径下的ChromeDriver替换为你下载的和浏览器版本匹配的驱动文件即可。
4. 也可以直接在Selenium初始化代码中显式指定ChromeDriver的绝对路径,彻底规避环境变量优先级导致的驱动调用异常,修改代码如下:

chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument('--no-sandbox')
chrome_options.add_argument('--headless')
chrome_options.add_argument('--disable-gpu')
# 显式指定驱动路径
driver = webdriver.Chrome(executable_path='/usr/bin/chromedriver', chrome_options=chrome_options)
长期规避方案

可以使用webdriver-manager工具自动管理驱动版本,无需手动下载匹配版本,它会自动识别当前安装的Chrome浏览器版本,自动下载对应匹配的ChromeDriver,使用方式如下:

  1. 先安装依赖包:
    pip install webdriver-manager
  2. 修改初始化代码:
from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager

chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument('--no-sandbox')
chrome_options.add_argument('--headless')
chrome_options.add_argument('--disable-gpu')
driver = webdriver.Chrome(ChromeDriverManager().install(), chrome_options=chrome_options)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 05:18:01