解决使用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

相关推荐
niuniu_66628 分钟前
简单的自动化场景(以 Chrome 浏览器 为例)
运维·chrome·python·selenium·测试工具·自动化·安全性测试
suimeng615 小时前
ChromeDriver的常用方法
java·selenium
niuniu_66621 小时前
Selenium 性能测试指南
selenium·测试工具·单元测试·测试·安全性测试
莓事哒21 小时前
selenium和pytessarct提取古诗文网的验证码(python爬虫)
爬虫·python·selenium·测试工具·pycharm
suimeng61 天前
基本元素定位(findElement方法)
java·selenium
mywpython1 天前
mac 最新的chrome版本配置selenium的方式
chrome·python·selenium·macos
软件测试曦曦1 天前
如何使用Python自动化测试工具Selenium进行网页自动化?
自动化测试·软件测试·python·功能测试·测试工具·程序人生·自动化
freejackman1 天前
Selenium框架——Web自动化测试
python·selenium·测试
互联网杂货铺1 天前
黑盒测试、白盒测试、集成测试和系统测试的区别与联系
自动化测试·软件测试·python·功能测试·测试工具·单元测试·集成测试
Feng.Lee2 天前
聊一聊缓存如何进行测试
功能测试·测试工具·缓存