彻底解决 Selenium ChromeDriver 不匹配问题:Selenium ChromeDriver 最新版本下载安装教程

news2025/1/5 21:35:45

在 Python 的 Selenium 自动化测试中,ChromeDriver 是不可或缺的工具。它作为代码与 Chrome 浏览器的桥梁,但如果版本不匹配,就会导致各种报错,尤其是以下常见问题:

selenium.common.exceptions.SessionNotCreatedException: Message: session not created: This version of ChromeDriver only supports Chrome version 92
Current browser version is 103.0.5060.66 with binary path C:\Users\测试\AppData\Local\Google\Chrome\Application\chrome.exe

看到这样的报错,往往会让人抓狂。这次,我将带你一步步解决 Selenium 驱动版本不匹配的问题,帮你排除障碍、顺利运行代码!

Chrome 浏览器(谷歌浏览器)下载安装教程,附详细图文(建议收藏)

Chrome 浏览器(谷歌浏览器)下载安装教程,附详细图文(建议收藏)


为什么会发生版本不匹配?

每个版本的 ChromeDriver 都专门对应一个特定版本的 Chrome 浏览器。浏览器版本升级后,如果没有更新驱动,就会因版本不兼容而无法正常启动。解决方案非常简单:确保浏览器与驱动版本匹配

from selenium import webdriver
driver = webdriver.Chrome(executable_path="C:/path/to/chromedriver.exe")

下面我将详细讲解从浏览器版本检查到下载安装正确驱动的完整过程。


解决方案一览

按照以下步骤操作,你的测试环境就可以顺利运行了:

  1. 查看 Chrome 浏览器版本
  2. 下载对应版本的 ChromeDriver
  3. 配置驱动路径(包括直接指定chromeDriver路径或添加到环境变量)
  4. 验证驱动是否正确安装

一、查看 Chrome 浏览器版本

在安装 ChromeDriver 前,一定要知道当前浏览器的版本号,因为驱动的版本选择完全依赖浏览器版本。

方法:
  1. 打开 Chrome 浏览器。
  2. 在地址栏输入 chrome://version/,然后按回车。
  3. 页面会显示浏览器的详细信息,包括版本号。

示例:

从上图可以看到,浏览器版本号为 79.0.3945.88,所以我们需要下载 ChromeDriver 79.x


二、下载对应的 ChromeDriver

获取正确版本的驱动是关键一步。

推荐下载地址:
  • 国内网盘:https://pan.quark.cn/s/e9e6bb564337
  • 官方地址:https://googlechromelabs.github.io/chrome-for-testing/

国内网盘下载速度更快,官方地址则更加稳定。打开链接后,找到与你的浏览器版本号相匹配的驱动。

示例:

  1. 点击版本号链接,进入下载页面。
  2. 根据操作系统选择对应的文件(如 Windows 下载 .zip 格式的压缩包)。

三、解压并配置 ChromeDriver

下载完成后,解压文件,你会看到一个 chromedriver.exe 文件。接下来,我们需要让 Selenium 能够找到这个文件。

配置方法:
方法 1:在代码中直接指定驱动路径

如果你不想修改环境变量,可以直接在代码中指定驱动的绝对路径:

from selenium import webdriver
driver = webdriver.Chrome(executable_path="C:/path/to/chromedriver.exe")
方法 2:配置环境变量

chromedriver.exe 的路径添加到系统环境变量中,让系统可以全局访问:

  • Windows

    1. 打开系统设置,搜索“环境变量”。
    2. 在系统变量中找到 Path,点击“编辑”。
    3. 添加 chromedriver.exe 的完整路径。
  • Mac/Linux
    将文件移动到全局路径,例如 /usr/local/bin

    sudo mv chromedriver /usr/local/bin
    

完成配置后,可以直接运行 chromedriver 命令来验证是否成功。


四、验证 ChromeDriver 安装是否正确

安装完成后,验证是确保配置无误的关键步骤。你可以通过以下方法检查:

方法:
  1. 打开终端或命令行,输入以下命令:
    chromedriver --version
    
  2. 如果显示类似以下信息,则表示安装成功:
    ChromeDriver 79.0.3945.36
    

五、解决其他浏览器驱动问题

除了 Chrome,Selenium 也支持其他浏览器,如 Firefox 和 Edge。如果你需要操作其他浏览器,同样需要下载相应的驱动。

1. Firefox 浏览器驱动:GeckoDriver
  • 下载地址:https://github.com/mozilla/geckodriver/releases/
  • 安装方式与 ChromeDriver 类似。
2. Edge 浏览器驱动
  • 下载地址:https://developer.microsoft.com/en-us/microsoft-edge/tools/webdriver/
  • 配置方式相同。

六、常见问题与解决方案

1. 驱动版本不匹配
  • 原因:浏览器版本与驱动版本不一致。
  • 解决方案:重新检查浏览器版本号并下载匹配的驱动。
2. 配置环境变量后仍无法识别
  • 原因:环境变量配置错误或路径拼写问题。
  • 解决方案:使用代码指定路径或重新检查配置。
3. 升级浏览器导致驱动失效
  • 原因:浏览器版本升级后,旧驱动不再适配。
  • 解决方案:定期更新 ChromeDriver,与浏览器保持同步。

七、总结与实用技巧

  1. 定期更新浏览器与驱动
    浏览器和驱动会不断更新,建议养成同步检查和更新的习惯。

  2. 保存常用链接
    国内网盘与官方地址都值得收藏,以备不时之需。

  3. 优先尝试国内下载源
    在国内环境中,访问官方地址可能较慢,优先选择国内资源更高效。

通过本文的讲解,你应该已经掌握了解决 Selenium ChromeDriver 不匹配问题的全流程。如果有帮助,别忘了分享给更多朋友,解决他们的烦恼!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2270555.html

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

相关文章

[CTF/网络安全] 攻防世界 warmup 解题详析

查看页面源代码&#xff0c;发现source.php 得到一串代码&#xff0c;进行代码审计&#xff1a; <?phpclass emmm{public static function checkFile(&$page){$whitelist ["source">"source.php","hint">"hint.php"];…

基于fMRI数据计算脑脊液(CSF)与全脑BOLD信号的时间耦合分析

一、前言 笔者之前的文章《基于Dpabi和spm12的脑脊液(csf)分割和提取笔记》,介绍了如何从普通的fMRI数据中提取CSF信号。首先是基础的预处理,包括时间层校正、头动校正,再加上0.01-0.1Hz的带通滤波。接着用SPM12分割出CSF区域,设置一个比较严格的0.9阈值,确保提取的真是…

游泳溺水识别数据集,对25729张图片进行YOLO,COCO JSON, VOC XML 格式的标注,溺水平均识别率在89.9%

游泳溺水识别数据集&#xff0c;对25729张图片进行YOLO&#xff0c;COCO JSON, VOC XML 格式的标注&#xff0c;溺水识别率在92&#xff05; 训练结果 数据集和标签 验证 游泳测试视频 根据测试的视频来获取检测结果&#xff1a; 游泳测试视频的置信度设置60% 检测结果如下&…

STM32 拓展 电源控制

目录 电源控制 电源框图 VDDA供电区域 VDD供电区域 1.8V低电压区域 后备供电区域 电压调节器 上电复位和掉电复位 可编程电压检测器(PVD) 低功耗 睡眠模式(只有CUP(老板)睡眠) 进入睡眠模式 退出睡眠模式 停机(停止)模式(只留核心区域(上班)) 进入停…

Mac M2 Pro安装MySQL 8.4.3

絮絮叨叨 MacBook Pro&#xff0c;芯片&#xff1a;Apple M2 Pro, macOS: Sonoma 14.0一直知道很多软件对Mac M1或M2的支持不好&#xff0c;但没想到在安装MySQL 8.x上也让我吃尽了苦头本文除了介绍如何安装MySQL 8.4.3外&#xff0c;还会记录笔者遇到的一些问题以及解决方法 …

闻泰科技涨停-操盘训练营实战-选股和操作技术解密

如上图&#xff0c;闻泰科技&#xff0c;今日涨停&#xff0c;这是前两天分享布局的一个潜伏短线的标的。 选股思路&#xff1a; 1.主图指标三条智能辅助线粘合聚拢&#xff0c;即将选择方向 2.上图红色框住部分&#xff0c;在三线聚拢位置&#xff0c;震荡筑底&#xff0c;…

ts总结一下

ts基础应用 /*** 泛型工具类型*/ interface IProps {id: string;title: string;children: number[]; } type omita Omit<IProps, id | title>; const omitaA: omita {children: [1] }; type picka Pick<IProps, id | title>; const pickaA: picka {id: ,title…

Linux:各发行版及其包管理工具

相关阅读 Linuxhttps://blog.csdn.net/weixin_45791458/category_12234591.html?spm1001.2014.3001.5482 Debian 包管理工具&#xff1a;dpkg&#xff08;低级包管理器&#xff09;、apt&#xff08;高级包管理器&#xff0c;建立在dpkg基础上&#xff09;包格式&#xff1a;…

2024秋语法分析作业-B(满分25分)

特别注意&#xff1a;第17条产生式改为 17) Stmt → while ( Cond ) Stmt 【问题描述】 本次作业只测试一个含简单变量声明、赋值语句、输出语句、if语句和while语句的文法&#xff1a; 0) CompUnit → Block 1) Block → { BlockItemList } 2) BlockItemList → BlockItem…

Tomcat优化指南

以下是一份详细的Tomcat优化指南&#xff1a; 一、JVM&#xff08;Java虚拟机&#xff09;优化 内存设置 堆内存&#xff08;Heap Memory&#xff09; 调整-Xms&#xff08;初始堆大小&#xff09;和-Xmx&#xff08;最大堆大小&#xff09;参数。一般来说&#xff0c;将初始…

【我的 PWN 学习手札】IO_FILE 之 劫持vtable

vtable帮助C实现了类似于多态的效果&#xff0c;然而其中的大量函数指针&#xff0c;一旦被劫持修改&#xff0c;就会产生巨大的危害。 前言 【我的 PWN 学习手札】IO_FILE相关几个基本函数的调用链源码-CSDN博客 【我的 PWN 学习手札】IO_FILE 之 stdin任意地址写-CSDN博客…

力扣编程从0-1

第一题 class Solution:def mergeAlternately(self, word1: str, word2: str) -> str:#计算两个字符串长度&#xff0c;从i 0开始遍历&#xff0c;每次循环&#xff1a;#如果i小于word1的长度&#xff0c;把word1[i]加到答案末尾#如果i小于word2的长度&#xff0c;把word2[…

SpringMVC(一)配置

目录 引入 第一章&#xff1a;Java web的发展历史 一、Model I和Model II 1.Model I开发模式 2.Model II开发模式 二. MVC模式 第二章&#xff1a;SpringMVC的入门案例 搭建SpringMVC的入门程序 1.创建新项目 2.等待加载导入坐标 3.处理xml文件和其他 导入tomcat 运…

迅为RK3568开发板编译Android12源码包-设置屏幕配置

在源码编译之前首先要确定自己想要使用的屏幕并修改源码&#xff0c;在编译镜像&#xff0c;烧写镜像。如下图所示&#xff1a; 第一步&#xff1a;确定要使用的屏幕种类&#xff0c;屏幕种类选择如下所示&#xff1a; iTOP-3568 开发板支持以下种类屏幕&#xff1a; 迅为 LV…

机器学习-感知机-神经网络-激活函数-正反向传播-梯度消失-dropout

文章目录 感知机工作流程 神经网络区别各种各样的神经网络 激活函数激活函数类型Sigmoid 函数ReLU函数Leaky ReLU 函数Tanh 函数 正向传播反向传播梯度消失(gradient vanish)如何解决 Dropout使用 PyTorch实战神经网络算法(手写MNIST数字识别)viewsoftmax和log-softmaxcross-en…

Android使用JAVA调用JNI原生C++方法

1.native-lib.cpp为要生成so库的源码文件 2.JNI函数声明说明 NewStringUTF函数会返回jstring JNI函数声明规则 3.JAVA中声明及调用JNI函数 声明&#xff1a; 调用 4.源码地址&#xff1a; gitgithub.com:tonyimax/UpdateTimeByThread.git

【git】git stash相关指令

目录 git stashgit stash save “”git stash list&#xff1a; 获取stash列表git stash pop&#xff1a;恢复最近一次stash缓存git stash apply stash{index}: 恢复指定缓存在这里插入图片描述git stash drop stash{1}&#xff1a;删除指定缓存 git stash clear :删除stash gi…

spring的@Transactional事务原理理解

目录 Transactional 普通例子代码和测试输出编程式事务事务代理实现和TransactionAspectSupport重要类复习Spring的事务传播机制有哪些实际工作中用到的事务处理 Transactional事务原理理解 Transactional 普通例子代码和测试输出 Transactional(rollbackFor Exception.class…

WebGL之Tree.js

tree基于WebGL的库绘制展示3D图形使用场景包括: 网页游&#xff1a;创建交互式的3D游戏&#xff0c;提供沉浸式的游戏体验。数据可视&#xff1a;将复杂的数据以3D形式展示&#xff0c;便于用户理解和分析。产品展&#xff1a;在电商网站上展示产品的3D模型&#xff0c;提供更…

图像识别-全连接层-卷积层-卷积层的计算-多输入通道场景-多输出通道场景-感受野-填充-VALID 与 SAME-stride-池化-CNN架构

文章目录 全连接层卷积神经网络的作用全连接层的问题场景图像处理和数据转换信息丢失的实例特征提取阶段分类阶段 卷积层卷积层的计算多输入通道场景多输出通道场景批量操作 感受野填充&#xff08;padding&#xff09;VALID 与 SAMEstride池化池化的作用 CNN架构 全连接层 卷…