selenium+chromedriver 闪退及无法更改版本号问题

selenium+chromedriver 闪退及无法更改版本号问题

首先确定各版本信息

chrome浏览器版本
selenium+chromedriver 闪退及无法更改版本号问题_第1张图片
selenium+chromedriver 闪退及无法更改版本号问题_第2张图片

chromedriver版本信息
win+R,cmd,chromedriver --version
在这里插入图片描述
这里如果会显示版本号,会出现一个大坑,博主就是因为这个版本信息的问题,疯狂报错!!!

核对版本是否一致

不一致,有两种解决方法
方法一:更新谷歌浏览器版本,网址如下
https://www.chromedownloads.net/chrome64win/
注意,更新谷歌浏览器,降版本需要先卸载高版本(升级版本博主并没有用到,所以不做赘述)
方法二:更新chromedriver版本,网址如下
https://chromedriver.storage.googleapis.com/index.html
selenium+chromedriver 闪退及无法更改版本号问题_第3张图片
找到与自己谷歌相对应的版本号,如果没有相同的,建议是同个大版本号,比自己谷歌版本稍高的小版本号
根据自己的电脑系统下载,win64 同样下载32位即可
selenium+chromedriver 闪退及无法更改版本号问题_第4张图片

尝试使用pycharm,selenium+chromedriver打开网页

下载后,解压,放在自己所需要的文件夹中,这里不做过多赘述
运行,发现产生如下报错
Message: session not created: This version of ChromeDriver only supports Chrome version 108
Current browser version is 98.0.4758.102 with binary path C:\Users\touH\AppData\Local\Google\Chrome\Application\chrome.exe

这里就是上述说到能产生版本号的坑了,我明明放在使用文件中的是与谷歌版本号相同的98版,为什么调用的是108版本的?
多方查阅,发现是环境变量在其中作祟
在这里插入图片描述
这是博主当时自定义的系统变量中path的值,用于python运行,但因为年久失修(最近都在看前端,想着做爬虫才回来看看python),也正是这个原因,我在python39文件夹中当时放了108版本的chromedriver,
博主写代码时候偷懒,写的是这样的调用

path = Service('chromedriver.exe')
browser = webdriver.Chrome(service=path)

所以每次调用都会默认调用这个版本
使用绝对路径就不会出现这个问题
至此,明白问题所在,删除python39中的108版本chromedriver,放入98版本的chromedriver,再次运行,完美解决,不报错,不闪退

闪退问题

pycharm→File→Settings→project:自己的项目名,查看自己的selenium的版本号
selenium+chromedriver 闪退及无法更改版本号问题_第5张图片
笔者之前用的是4.8.3的版本,会出现浏览器加载成功,但是加载完甚至没加载完就闪退的问题,注意,此时控制台不输出不报错,单纯的就是程序结束运行了,这是正常现象,因为高版本的selenium自动控制,结束进程,回收内存了,降低selenium版本到4.4.3版本即可。

pip install selenium==4.4.3

你可能感兴趣的:(selenium,python,chrome)