当前位置: 首页 > article >正文

【Python】谷歌浏览器总是自动更新,使用selenium跟chromedriver版本不匹配怎么办?

我发现,我的电脑对谷歌浏览器的禁止自动更新无效,哪怕是在任务计划程序里,禁止谷歌浏览器更新,也没有用。而且有时候点开右上角的三个点,也会自动更新版本。

但是往往chromedriver的更新版本更不上浏览器的版本哇,更不用说访问chromedriver 的网站总会遇到这个问题:
在这里插入图片描述

所以用selenium驱动的时候,就会出现下面的问题:

SessionNotCreatedException: session not created: This version of chromeDriver only supports chrome version 112version is 122.0.6261.70 with binary path c:\Program Files\Google\chrome \Applicatpa……

在这里插入图片描述

遇到上面的问题是因为,谷歌浏览器设立了自动更新,然而,我们的chromedriver版本与浏览器的版本不适应,无法启动……

遇到谷歌浏览器更新后,selenium的执行出现问题怎么办?

下载历史浏览器和驱动器

我的解决方法是保留了原来的谷歌浏览器,以及相对应的chromedriver版本,并且固定使用原来的谷歌浏览器就可以了,这样就不用担心浏览器自动更新的问题了。

如果没有保存原来的谷歌浏览器的版本的话,可以在这个网址这里下载历史浏览器版本:网址
在这里插入图片描述找到这个,下载下来:
在这里插入图片描述然后在chromedriver 的网站下载对应的版本,网址

在这里插入图片描述(找到跟谷歌浏览器同一版本的驱动器)

在这里插入图片描述
(驱动器很长一段时间都维持在114的版本就不再更新了,嘤嘤嘤~)

如果无法下载的话,可以在我上传的资源地方,下载我常用的【历史谷歌浏览器】和chromedriver ~

详细链接:历史谷歌浏览器和对应的chromedriver文件,防谷歌浏览器自动更新影响selenium运行

不过这样一来,也会有新的问题:新的版本的谷歌浏览器和旧版本的谷歌浏览器会有使用冲突,一般程序会自动调用原来的浏览器(也就是会自动更新的那个)

所以就要加上指定使用哪个路径下的chrome浏览器了,代码:options.binary_location=+chrome的路径

全部代码:

from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.chrome.options import Options

options = Options()
options.add_argument('--verbose')

#指定调用哪个路径下的谷歌浏览器
options.binary_location=r'C:\Program Files (x86)\Google\chrome.exe'

chromedriver_path = r"D://anaconda//chromedriver.exe"  
service = Service(executable_path=chromedriver_path)
#service.log_path = '/path/to/chromedriver.log'

driver = webdriver.Chrome(service=service, options=options)
driver.get('http://www.baidu.com')

于是就执行完成啦!
在这里插入图片描述

自动下载当前浏览器对应驱动

或者使用ChromeDriverManager()的方法,自动下载当前浏览器对应驱动的方法,实测好用!
(缺点是运行起来的时候会受网络影响,网页打开得比较慢)

from selenium.webdriver.chrome.service import Service as ChromeService
from webdriver_manager.chrome import ChromeDriverManager
service = ChromeService(ChromeDriverManager().install())  # 自动下载当前浏览器对应驱动
driver = webdriver.Chrome(service=service)

在这里插入图片描述


http://www.kler.cn/a/306583.html

相关文章:

  • DIP switch是什么?
  • 微服务各组件整合
  • Java面向对象高级2
  • 设计模式练习(一) 单例模式
  • MySQL与Oracle对比及区别
  • 微服务(二)
  • 01,大数据总结,zookeeper
  • 算法练习题27——疫情下的电影院(模拟)
  • AI辅助癌症诊断取得了进展
  • Angular面试题一
  • 大模型 LLM(Large Language Models)如今十分火爆,对于初入此领域的新人小白来说,应该如何入门 LLM 呢?是否有值得推荐的入门教程呢?
  • 深度学习自编码器 - 引言篇
  • java基于PDF底层内容流的解析对文本内容进行编辑
  • 象过河手机进销存,外出办公更方便,随时了解经营情况
  • C# 静态static
  • 基于HTML5的下拉刷新效果
  • 如何避免长距离遗忘问题
  • HarmonyOS NEXT 封装实现好用的网络模块(基于最新5.0的API12)
  • Android 12 Launcher3 去掉Hotseat
  • JVM 调优篇7 调优案例3- gc overhead limit exceed
  • ListBox显示最新数据、左移和右移操作
  • K8s中HPA自动扩缩容及hml
  • idea2024.2永久使用
  • MFC工控项目实例之十五定时刷新PC6325A模拟量输入
  • HTML添加文字
  • 【深度学习】Pytorch基础