解决使用Selenium时ChromeDriver版本不匹配问题

ops/2025/2/2 15:31:16/

在学习Python爬虫过程中如果使用Selenium的时候遇到报错如下session not created: This version of ChromeDriver only supports Chrome version 99… 这说明当前你的chrome驱动版本和浏览器版本不匹配。

例如
SessionNotCreatedException: Message: session not created: This version of ChromeDriver
only supports Chrome version 114 Current browser version is 118.0.5993.89
意思就是说:你的Chrome版本是118,但你的ChromeDriver版本是114。需要最新版的谷歌驱动安装。

所以要正确安装ChromeDriver版本, 适配自己的chrome浏览器

文章目录

  • 为什么出现这个问题?
  • 查看Chrome版本
  • 下载对应版本ChromeDriver
  • 安装ChromeDriver
    • 安装到Python路径下
    • 安装到其他位置
  • 验证安装
  • 其他浏览器驱动
  • 拓展学习

为什么出现这个问题?

每个ChromeDriver都会对应一个版本的Chrome浏览器, 所以浏览器升级后原来的Chrome就不对应了, 这样就导致出现了不兼容的问题

查看Chrome版本

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

在这里插入图片描述

下载对应版本ChromeDriver

官方地址(貌似只能下载最新版):https://googlechromelabs.github.io/chrome-for-testing/
这个可以下载以往的版本: http://chromedriver.storage.googleapis.com/index.html (64位的windows系统下载win32就可以)

ChromeDriver官方解释(如下图): https://developer.chrome.com/docs/chromedriver/downloads?hl=zh-cn
在这里插入图片描述

安装ChromeDriver

下载好对应的文件后, 会获得一个压缩包, 将这个压缩包解压, 看到里面的exe文件

在这里插入图片描述

安装到Python路径下

将这个文件复制到Python安装目录下的Scripts文件夹中
在这里插入图片描述
如何找到自己的安装目录?
使用快捷键[win+R], 输入cmd, 按回车, 在命令行窗口中输入 where python即可看到自己的python安装目录
在这里插入图片描述

如果是macOS, 则将解压得到的Chromedriver文件夹放在/usr/bin目录下

安装到其他位置

如果将ChromeDriver安装到其他路径下, 则需要在代码中通过参数executable_path指定"chromederiver.exe"文件的路径
在代码中设置ChromeDriver的路径,就可以将ChromeDriver文件放在任意位置了

旧版selenium可以使用以下语句直接指定chromedriver.exe文件的位置

from selenium import webdriverdriver = webdriver.Chrome(executable_path='D:\\python3.7.7\\chromedriver_win32\\chromedriver.exe')
# driver = webdriver.Chrome(executable_path=r'C:\Users\chromedriver.exe')  路径字符串前的r的作用是取消路径中的"\"可能存在的特殊含义
driver.get('https://www.baidu.com')

新版selenium废除了上述方式(可以使用但会提示报错),可以使用以下方式,需要引入Service包

from selenium import webdriver
from selenium.webdriver.chrome.service import Serviceservice = Service(executable_path='D:\\python3.7.7\\chromedriver_win32\\chromedriver.exe')
driver = webdriver.Chrome(service=service)
driver.get('https://www.baidu.com')

验证安装

from selenium import webdriver
browser = webdriver.Chrome()
browser.get('https://www.baidu.com')

运行这三行代码, 可以看到Python打开一个模拟浏览器, 证明安装成功了

其他浏览器驱动

除了 Chrome 浏览器外,Selenium 还支持其他主流浏览器的自动化操作,如 Firefox 和 IE。以下是它们对应驱动的获取方法:

1.Firefox 浏览器驱动(GeckoDriver)

  • 下载地址:https://github.com/mozilla/geckodriver/releases/
  • 下载与系统匹配的文件后,按照与 ChromeDriver 类似的方式解压使用

2.IE 浏览器驱动

  • 下载地址:http://selenium-release.storage.googleapis.com/index.html
  • 注意:由于 IE 浏览器的兼容性较差,不推荐在自动化测试中使用。

拓展学习

如果要学习自动加载对应版本的ChromeDriver可以参考教程: https://blog.csdn.net/IT_lw/article/details/121658468

参考(侵删):
https://blog.csdn.net/IT_lw/article/details/121658468
https://blog.csdn.net/stormjun/article/details/144884034


http://www.ppmy.cn/ops/155064.html

相关文章

Elastic Cloud Serverless 获得主要合规认证

作者:来自 Elastic Oliver Mao 我们很高兴地宣布,Elastic Cloud Serverless 已获得多项重要的合规性认证。这一里程碑加强了我们对安全性、隐私性和法规遵从性的承诺。Elastic Cloud Serverless 现已通过以下行业领先框架的审核或认证:SOC 2 …

爬虫基础(六)代理简述

目录 一、什么是代理 二、基本原理 三、代理分类 一、什么是代理 爬虫一般是自动化的,当我们自动运行时 爬虫自动抓取数据,但一会就出现了错误: 如,您的访问频率过高! 这是因为网站的反爬措施,如果频…

PHP Error处理与优化指南

PHP Error处理与优化指南 引言 在PHP编程中,错误处理是保证程序稳定性和用户体验的关键环节。良好的错误处理机制不仅能帮助开发者快速定位问题,还能提升应用程序的健壮性。本文将详细介绍PHP错误处理的方法、技巧以及优化策略。 一、PHP错误处理概述 1.1 错误类型 PHP中…

完美还是完成?把握好度,辨证看待

完美还是完成? 如果说之前这个答案有争议,那么现在,答案毋庸置疑 ■为什么完美大于完成 ●时间成本: 做事不仅要考虑结果,还要考虑时间和精力,要说十年磨一剑的确质量更好,但是现实没有那么多…

【单链表算法实战】解锁数据结构核心谜题——环形链表

题目如下: 解题过程如下: 环形链表:尾结点的next指针不为空,而是指向链表中的任一结点。 思路:快慢指针,慢指针每次走一步,快指针每次走两步。快慢指针在环中追逐相遇,那么这个链表…

FastAPI + GraphQL + SQLAlchemy 实现博客系统

本文将详细介绍如何使用 FastAPI、GraphQL(Strawberry)和 SQLAlchemy 实现一个带有认证功能的博客系统。 技术栈 FastAPI:高性能的 Python Web 框架Strawberry:Python GraphQL 库SQLAlchemy:Python ORM 框架JWT&…

算法基础学习——快排与归并(附带java模版)

快速排序和归并排序是两种速度较快的排序方式,是最应该掌握的两种排序算法, (一)快速排序(不稳定的) 基本思想:分治 平均时间复杂度:O(nlogn) / 最慢O(n^2) / 最快O(n) 步骤&…

亚博microros小车-原生ubuntu支持系列:17 gmapping

前置依赖 先看下亚博官网的介绍 Gmapping简介 gmapping只适用于单帧二维激光点数小于1440的点,如果单帧激光点数大于1440,那么就会出【[mapping-4] process has died】 这样的问题。 Gmapping是基于滤波SLAM框架的常用开源SLAM算法。 Gmapping基于RBp…