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

news/2025/9/24 19:59:49/文章来源:https://www.cnblogs.com/wzzkaifa/p/19109869

解决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.mzph.cn/news/916172.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

伍佰亿搜索引擎网站系统企业科技网站建设

如何在apache Arrow定位与解决问题 最近在执行sql时做了一些batch变更,出现了一个 crash问题,底层使用了apache arrow来实现。本节将会从0开始讲解如何调试STL源码crash问题,在这篇文章中以实际工作中resize导致crash为例,引出如何…

2013网站建设方案沃尔玛商城

本人使用谷歌搜索了简中互联网,完全没有找到任何有关 ANAME 的文章……本文该不会是头一份吧 相信大家对于 DNS 的解析方式都不陌生,常见的有 A、CNAME、MX、TXT 记录等等。其中,网站常用的是 A 记录和 CNAME 记录:A 记录用于将域…

对象初始化器的使用方法

1. 什么是对象初始化器? 对象初始化器就是一种在创建对象的同时,直接给属性赋值的写法。不用先 new 一个对象,再一行一行地赋值。 它的作用是用来给对象初始化的 一定存在:必然要执行构造方法 2. 构造方法与对象初…

C++、Java 和 Python 在输入输出差别

C++、Java 和 Python 在输入输出(I/O)格式上有显著差异,主要体现在语法风格、处理方式和灵活性上。以下从标准输入输出、文件操作两个维度对比三者的差异,并结合示例说明核心特点。 一、标准输入输出(控制台 I/O)…

我的学习记录之自我介绍、思维导图和监督措施

一、关于我: 目前就读于中南林业科技大学涉外学院数据科学与大数据技术专业大三,介绍一下自己,在我之前的学习生活中我一般是班级里小透明的存在,成绩一直处于中等偏上,但是又不调皮捣蛋,所以老师一般不会有特别…

用 Java 和 Tesseract 进行验证码识别:基础实现与优化

验证码(CAPTCHA)是防止自动化攻击的常见手段。然而,在某些场景下,如自动化测试或者爬虫平台,可能需要识别和处理验证码图像。本文将指导你如何使用 Java 和 Tesseract OCR(光学字符识别)库来实现验证码识别,并…

新网站应该怎么做料神wordpress建站教程

A12435 思路:只有4中情况:A1,A2翻转,其他正常,A2A3翻转其他正常.....为了下标与数字对应我开了6个空间,然后从1开始循环,到4截止,因为循环中有i1害怕数组越界,如果索引出的数与下标不相等了&…

教育类网站开发文档上海工程项目查询

仓库建设 luogu 2120 题目大意 有一个斜坡,上面有n个工厂(山顶是1,山脚是nnn,工厂都是漏填),上面有pip_ipi​个货物,和工厂1的距离为x1x_1x1​ 现在有一场大雨,你可以在某些工厂处…

网站开发项目工期流程手机版网页

BERT:深度学习领域中的语言理解利器 摘要 BERT(双向编码器表示法自转换器)是一种领先的深度学习模型,它在许多语言理解任务中都显示出卓越的性能。BERT模型基于转换器编码器架构,并通过自监督学习在大量未标记文本数…

Java第二次实验

1. 本章学习总结 本章学习了Java多方面知识:控制台输入推荐用Scanner.nextLine()避免问题,还涉及 IDE 操作与 String.split;身份证排序用Arrays.sort和String.subString,结构化编程且注意输入方法;需了解 StringB…

详细介绍:【2025PolarCTF秋季个人赛】WEB方向wp

详细介绍:【2025PolarCTF秋季个人赛】WEB方向wppre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", …

英语_阅读

当然可以,以下是英文与中文交替的逐句翻译:Six-year-old Brooke Neitzel wanted a dollhouse. 六岁的布鲁克奈策尔想要一个娃娃屋。 So she ordered one just by telling the familys smart speaker what she wanted…

Nuget安装以及西门子PLC通信

安装S7NetPlus库 ​添加命名空间 ,using S7.Net​创建一个西门子PLC通信对象——成员变量实例化 ,this:表示的是当前对象建立简介 ,对象名.方法名 , this.siemens.Open()​读取变量 , 装箱的一个过程 ,解析变量 ,…

wordpress捐赠按钮如何做网站导航栏的seo优化

2.1.9 调度算法 知识总览 学习各种调度算法的思路 算法思想算法规则这种调度算法是用于作业调度还是进程调度?抢占式或是非抢占式优点和缺点是否会导致饥饿(某进程/作业长期得不到服务) 2.1.9.1 先来先服务 知识点说明英文名FCFS&#xff0…

网站怎么做成二维码做网站找顺的

二叉树垂直遍历题目描述输入输出示例输入实例输出DFSBFS更简单的方法二叉树垂直遍历题目描述对于一个二叉树,输出它的垂直遍历结果;对于同一列的节点,按照从左向右,从上向下的顺序排列。例如,对于以下二叉树&#xff1…

与狗狗做网站互联网广告价格

创建工程: 2.1.程序的耦合 耦合:耦合指的就是对象之间的依赖关系。对象之间的耦合越高,维护成本越高。 案例:没有引入IOC容器时系统的Web层、业务层、持久层存在耦合 /*** 持久层实现类*/ public class UserDaoImpl implements U…

每日反思(2025_09_24)

今天跟着左神视频学些了快速排序以及逆序对和荷兰国旗问题,了解了双指针三指针递归解决问题,并解决了leetcode第75题颜色分类,正在解决力扣LCR170题。 明天继续跟视频学习,并写涉及到的力扣题,晚上总结这三天的学…

普通用户之间免密互信时因权限问题致使配置失败

[student@master ~]$ ssh-copy-id user1@node1 /usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/home/student/.ssh/id_rsa.pub" /usr/bin/ssh-copy-id: INFO: attempting to log in with…

安装Flask库

安装Flask库 1、下载安装python官网下载 python-3.9.10-amd64.exe 安装,勾选Add Python 3.9 to PATH 2、验证安装cmd输入:python --version cmd输入:pip --version 升级pip:python -m pip install --upgrade pip …

《新概念英语》在线朗读,单句点读,随时随地在线学习。

新概念英语-全四册 New Concept English 在线课文点读 在线朗读,单句点读,随时随地在线学习。📕 第一册:《First Things First》 目标:打基础,日常交流入门内容概述:共144课,都是非常短的小对话和故事。 涉及…