当前位置: 首页 > news >正文

【Selenium】消除Selenium报错:ChromeDriver与Chrome浏览器版本不匹配

解决Selenium报错:ChromeDriver与Chrome浏览器版本不匹配

一招解决“session not created: This version of ChromeDriver only supports Chrome version XXX”问题

在使用 Selenium 进行 Web 自动化测试时,很多人都会遇到一个常见的错误:“session not created: This version of ChromeDriver only supports Chrome version X, Current browser version is Y”。本文将通过一个实际案例,详细解释这个错误的原因,并提供多种解决方案,帮助你快速恢复自动化测试工作。

问题现场:当ChromeDriver与Chrome版本不匹配

想象一下这个场景:你写了一段完美的Selenium脚本,昨天还能正常运行,今天再次运行时却突然崩溃,控制台输出了类似下面的错误信息:

selenium.common.exceptions.SessionNotCreatedException: Message: session not created: This version of ChromeDriver only supports Chrome version 136
Current browser version is 139.0.7258.140 with binary path C:\Program Files\Google\Chrome\Application\chrome.exe

错误解读:到底发生了什么?

这个错误的核心信息非常明确:你使用的ChromeDriver版本与已安装的Chrome浏览器版本不兼容

为了更好地理解这个问题,让我们通过一个思维导图来看看版本不匹配问题的全貌和解决方案:

方案二: 自动管理驱动
安装webdriver-manager库
修改代码自动下载
无需手动维护版本
方案一: 手动更新驱动
查看Chrome版本
chrome://version
下载匹配的ChromeDriver
替换旧驱动文件
ChromeDriver与浏览器版本不匹配
选择解决方案
问题解决

解决方案一览表

解决方案适用场景优点缺点
手动更新ChromeDriver临时解决、网络受限环境简单直接、无需修改代码需要手动操作、下次更新可能再次出现
使用webdriver-manager长期项目、持续集成环境自动管理版本、一劳永逸需要安装额外库、修改代码

方法一:手动更新ChromeDriver(逐步指南)

步骤1:查看Chrome浏览器版本

  1. 打开Chrome浏览器
  2. 在地址栏输入:chrome://version
  3. 记录浏览器版本号(例如:139.0.7258.140)

步骤2:下载匹配的ChromeDriver

  1. 访问ChromeDriver下载页面:

    • 官方地址:https://chromedriver.chromium.org/downloads
    • 或备用地址:https://googlechromelabs.github.io/chrome-for-testing/
  2. 找到与你的Chrome版本匹配的ChromeDriver

    • 注意:尽量选择完全一致的版本号
    • 如果没有完全匹配的版本,选择最接近的版本

步骤3:替换ChromeDriver文件

  1. 找到项目中当前使用的ChromeDriver位置

  2. 用新下载的ChromeDriver替换旧文件

步骤4:重新运行测试

现在你的ChromeDriver版本应该与Chrome浏览器版本匹配,可以正常运测试了。

方法二:自动管理ChromeDriver版本(推荐)

对于长期项目,手动管理ChromeDriver版本会很麻烦。推荐使用webdriver-manager库自动处理版本匹配问题。

安装webdriver-manager

pip install webdriver-manager

修改你的Selenium代码

将原来的驱动初始化代码:

from selenium import webdriver
driver = webdriver.Chrome()

改为:

from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from webdriver_manager.chrome import ChromeDriverManager
# 自动下载并配置匹配的ChromeDriver
driver = webdriver.Chrome(service=Service(ChromeDriverManager().install()))

这样,每次运行脚本时,webdriver-manager都会自动检查你的Chrome浏览器版本,并下载匹配的ChromeDriver,彻底解决版本不匹配的问题。

预防措施与最佳实践

  1. 禁用Chrome自动更新(仅限测试环境)

    • 虽然不推荐用于日常浏览,但在专用测试环境中,可以暂时禁用Chrome自动更新,保持环境稳定
  2. 使用固定版本的浏览器进行测试

    • 在Docker容器中使用特定版本的Chrome进行测试
    • 确保测试环境的一致性
  3. 在CI/CD流水线中正确处理浏览器依赖

    • 在持续集成配置中明确指定浏览器版本
    • 或者使用webdriver-manager自动处理版本匹配

总结

ChromeDriver与Chrome浏览器版本不匹配是Selenium自动化测试中的常见问题。通过本文介绍的两种方法,你可以轻松解决这个问题:

  1. 手动更新ChromeDriver:简单直接,适合临时解决
  2. 使用webdriver-manager:自动管理,一劳永逸

对于长期项目,强烈推荐使用webdriver-manager自动管理驱动版本,这样可以节省大量维护时间,让自动化测试更加稳定可靠。

希望本文能帮助你顺利解决ChromeDriver版本问题,让你的Web自动化测试重新流畅运行!

http://www.jsqmd.com/news/3064/

相关文章:

  • 对象初始化器的使用方法
  • C++、Java 和 Python 在输入输出差别
  • 我的学习记录之自我介绍、思维导图和监督措施
  • 用 Java 和 Tesseract 进行验证码识别:基础实现与优化
  • Java第二次实验
  • 详细介绍:【2025PolarCTF秋季个人赛】WEB方向wp
  • 英语_阅读
  • Nuget安装以及西门子PLC通信
  • 每日反思(2025_09_24)
  • 普通用户之间免密互信时因权限问题致使配置失败
  • 安装Flask库
  • 《新概念英语》在线朗读,单句点读,随时随地在线学习。
  • 深入解析:[p2p-Magnet] docs | HTTP API与Web界面 | 搜索查询引擎
  • P10004 [集训队互测 2023] Permutation Counting 2
  • java数组拷贝主要有四种方法,浅拷贝
  • 毕赤酵母细胞工厂升级:CRISPR 技术破局传统局限,解锁多基因代谢工程新可能
  • 日总结 7
  • React学习教程,从入门到精通,React Router 语法知识点及使用手段详解(28)
  • 读书笔记:OpenPBR 规范(1)
  • 9月24号
  • leetcode(填充每个节点的下一个右侧节点指针 II) - 详解
  • linux系统下nginx网站ssl证书自动续签
  • C#使用Bitmap操作图像的基础方法
  • 知识学报:位运算(1)
  • ThinkPHP在启用nginx反向代理后如何获取真实的Ip地址
  • CentOS 7 下 Kubernetes 集群搭建与配置指南
  • wpf 自定义输入ip地址的文本框 - 详解
  • 【macOS】垃圾箱中文档无法清理的“含特殊字符文件名”的技巧
  • Git 工作树 (worktree)、合并 (merge) 流程、拉取请求 (PR) 机制,以及基线分支概念
  • 【HD300I 】基于昇腾 310P 的全国产化智能计算模组