【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 Optionsoptions = 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.rhkb.cn/news/425030.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

RPC远程调用的序列化框架

序列化框架对比: 一、Java Serialiazer 字段serialVersionUID的作用是为了在序列化时保持版本的兼容性,即版本升级时反序列化仍保持对象的唯一性。 //序列化 ByteArrayOutputStream bout new ByteArrayOutputStream(); ObjectOutoutStream out new O…

测试-Gatling 与性能测试

Gatling 与性能测试详解 一、什么是性能测试? 性能测试是一种软件测试类型,旨在评估系统在负载下的响应时间、吞吐量和资源利用率等性能指标。通过性能测试,开发者和运维团队能够识别出系统的瓶颈、优化系统性能,并确保其在实际…

使用kkFileView的几个问题

经测试,可以正常的预览:pdf,png,pptx,psd,zip,word,dcm(医学片子 dr ct等) 部署发布(Linux) 一、上传到服务器 上传jar包(或者官方社区提供的包…

【Linux】精通GDB:打造你的Linux调试超能力

🌈 个人主页:Zfox_ 🔥 系列专栏:C从入门到精通 目录 一: 🔥 什么是GDB / CGDB 二: 🔥 CGDB的安装 🍊 Linux-centos 三: 🔥 cgdb的使用背景 &#…

深度剖析iOS渲染

iOS App 图形图像渲染的基本流程: 1.CPU:完成对象的创建和销毁、对象属性的调整、布局计算、文本的计算和排版、图片的格式转换和解码、图像的绘制。 2.GPU:GPU拿到CPU计算好的显示内容,完成纹理的渲染, 渲染完成后将渲…

界面控件DevExpress中文教程:如何PDF图形对象的可见性?

DevExpress拥有.NET开发需要的所有平台控件,包含600多个UI控件、报表平台、DevExpress Dashboard eXpressApp 框架、适用于 Visual Studio的CodeRush等一系列辅助工具。屡获大奖的软件开发平台DevExpress 近期重要版本v24.1已正式发布,该版本拥有众多新产…

STM32与ESP8266的使用

串口透传 “透传”通常指的是数据的透明传输,意思是在不对数据进行任何处理或修改的情况下,将数据从一个接口转发到另一个接口。值得注意的是要避免串口之间无限制的透明,可以采用互斥锁的方式进行限制使用方法 对USART1和USART3(用他俩举例…

word文档无损原样转pdf在windows平台使用python调用win32com使用pip安装pywin32

前提: windows环境下,并且安装了office套装,比如word,如果需要调用excel.也需要安装。在另外的文章会介绍。这种是直接调用word的。所以还原度会比较高。 需求: word文档转pdf,要求使用命令行形式,最终发布为api接口…

基于高通主板的ARM架构服务器

一、ARM架构服务器的崛起 (一)市场需求推动 消费市场寒冬,全球消费电子需求下行,服务器成半导体核心动力之一。Arm 加速布局服务器领域,如 9 月推出 Neoverse V2。长久以来,x86 架构主导服务器市场&#…

QTreeView模糊查询

本文代码效果如下&#xff1a; 本文代码&#xff1a; https://download.csdn.net/download/Sakuya__/89759410https://download.csdn.net/download/Sakuya__/89759410 代码之路 MainWindow.h #ifndef MAINWINDOW_H #define MAINWINDOW_H#include <QMainWindow> #incl…

基于Ant-Design-Vue设计的配置化表单

适用vue 3.4 版本以上 在日常的前端开发中&#xff0c;表单开发必不可少&#xff0c;尤其是在遇到一些大型的复杂的表单&#xff0c;这往往会变成一个痛点。于是就想着开发一个可以list来配置的表单组件。 先上组件代码 <!-- 该组件 VUE 版本在 3.4 以上可使用--> <…

【QT】定时器使用

文章目录 关于 Qt 定时器使用的注意细节总结实例-检查工具使用周期时间是否合理UI设计头文件 remind.h源文件 remind.cpp实现效果 关于 Qt 定时器使用的注意细节总结 一、创建与初始化 使用 QTimer 类来创建定时器。可以在构造函数中指定父对象&#xff0c;确保定时器在正确的…

JavaDS —— B树

前言 本章节将带领大家进入B树的学习&#xff0c;主要介绍B树的概念和B树的插入代码的实现&#xff0c;删除代码不做讲解&#xff0c;最后简单介绍B树和B*树。 B树的概念 1970年&#xff0c;R.Bayer和E.mccreight提出了一种适合外查找的树&#xff0c;它是一种平衡的多叉树&…

【制作100个unity游戏之32】unity开发属于自己的一个2d/3d桌面宠物,可以实时计算已经获取的工资

最终效果 文章目录 最终效果一、实现Windows消息弹窗二、将窗口扩展到工作区三、穿透能点击到其他区域四、模型交互1、我们可以新增ObjectDrag 代码控制人物拖拖动2、实现模型交互五、最终代码六、其他七、游玩地址七、源码参考完结一、实现Windows消息弹窗 参考:https://lear…

WEB打点

目录 web打点概述打点流程打点中的问题getshell手法汇总web打点批量检测端口扫描POC扫描指纹识别漏洞扫描 手工检测开源框架漏洞通用框架漏洞基础web漏洞商用系统漏洞 WAF绕过waf分类常见waf拦截界面WAF绕过思路侧面绕&#xff1a;适合云WAF直面WAF web打点概述 打点流程 资产…

QT模型视图结构2

文章目录 Qt 模型视图结构——模型类(二)1.基本概念1.1.模型的基本结构1.2.模型索引1.3.行号和列号1.4.父项1.5.项的角色 Qt 模型视图结构——模型类(二) ​ 模型/视图结构是一种将数据存储和界面展示分离的编程方法。模型存储数据&#xff0c;视图组件显示模型中的数据&#…

【AI赋能医学】基于深度学习和HRV特征的多类别心电图分类

一、数据集简介 论文中使用了来自三类不同心电图记录的162条数据&#xff0c;这些数据来自三个公开的数据库&#xff1a; MIT-BIH 心律失常数据库 (ARR) 96条记录&#xff0c;主要包含不同类型的心律失常样本。 MIT-BIH 正常窦性心律数据库 (NSR) 36条记录&#xff0c;包含健…

Gitlab实现多项目触发式自动CICD

工作中可能会遇到这种场景&#xff0c;存在上游项目A和下游项目B&#xff0c;项目B的功能依赖项目A&#xff08;比如B负责日志解析&#xff0c;A是日志描述语言代码&#xff09;&#xff0c;这种相互依赖的项目更新流程一般如下&#xff1a; A项目更新&#xff0c;通知B项目开发…

Unity中InputField一些属性的理解

先看代码&#xff1a; using UnityEngine; using UnityEngine.UI;public class TestInput : MonoBehaviour {[SerializeField]InputField inputField;void Start(){Debug.Log(inputField.text);Debug.Log(inputField.text.Length);Debug.Log(inputField.preferredWidth);Debug…

2024工业机器视觉产业现状

早在20世纪80年代美国国家标准局就预计&#xff0c;检测任务的80%乃至90%将由视觉测量系统来完成&#xff0c;该预测至今已基本变成现实。当前&#xff0c;以智能制造为核心的工业4.0时代背景下&#xff0c;新型工业化的战略部署逐步深入&#xff0c;伴随AI大模型技术应用的逐步…