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

在学习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浏览器

文章目录

为什么出现这个问题?

每个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文件的位置

python 复制代码
from selenium import webdriver

driver = 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包

python 复制代码
from selenium import webdriver
from selenium.webdriver.chrome.service import Service

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

验证安装

python 复制代码
from selenium import webdriver
browser = webdriver.Chrome()
browser.get('https://www.baidu.com')

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

其他浏览器驱动

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

1.Firefox 浏览器驱动(GeckoDriver)

2.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

相关推荐
@zulnger5 小时前
Charles抓包工具
测试工具
ck0135797 小时前
视频添加水印的实践:文字叠加、透明 PNG 与时间区间设置
图像处理·测试工具·音视频·视频
EVE จุ๊บ1 天前
playwright和selenium的区别是什么
selenium·测试工具
Meta Luo3 天前
页面改版后自动化用例大量失败,应该怎么维护?
运维·功能测试·测试工具·自动化
释槐鸟~3 天前
还不知道RIDE工具怎么装吗
测试工具·自动化
有技巧搬砖4 天前
为什么锂电池组的电池老化测试很重要?
测试工具·锂电池·电池老化
蒲公英内测分发4 天前
智能手表卖出去后,包装、说明书和官网里的 App 下载入口怎么统一?
前端·人工智能·测试工具·智能家居·智能硬件·智能手表
蒲公英内测分发4 天前
智能手环出海测试,海外合作方分散在不同国家,Android 测试包怎么持续分发和更新?
android·前端·人工智能·测试工具·智能手表
无语的小歪歪4 天前
ATF 智测 1.0
python·测试工具·集成测试
SHENGWEI胜为5 天前
交换机端口显示正常,终端却获取不到 IP 地址?从 DHCP 流程定位故障
服务器·网络·测试工具·缓存·通信工程