selenium中ChromeDriver配置,一把过,并且教你伪装

news2025/1/13 15:50:23

最近正值毕业季,我之前不是写了个问卷星代码嘛,昨晚上有人凌晨1点加我,问我相关内容。

由于我之前C盘重装了一下,导致我很多东西空有其表,实际不能用,借此机会,向大家编写ChromeDriver配置,这是实现selenium自动化的第一步。

很多人觉得这一步很麻烦,其实也还好。

首先就是chromedriver和chrome版本是对应的,你不能跨版本安装,否则就会提示版本不适配,报错。

具体步骤可以看目录,也就是查看chrome版本->资源获取->复制到chrome路径下->复制到python解释器路径下

查看chrome版本

chrome版本点击设置->关于chrome

但是我这里就出现了一个问题,我这里显示117版本的,但是我代码测试的时候,发现不匹配,说我chrome版本是122版本的,因此我就只能按要求安装122版本的。 

资源获取

这是官网:ChromeDriver - WebDriver for Chrome - Downloads (chromium.org)

注意看红色标注的,说明这个网站只能看到115版本以下的,不能看115版本已经更新的版本,需要跳转到另一个网站,而那个网站很多人进不去的。 而且很多人的chrome版本已经是115甚至更新,所以这个网站上的内容相当于废了。大家可以关注一下公众号:认知up吧,回复driver获取我为大家准备好的chromedriver版本。资源如下图

 里面不只有win64的,其他系统的也有。


言归正传,你解压后,文件夹中内容如下,我们其实只需要chromedriver.exe即可。

复制到chrome路径下

首先就是在chrome图标,鼠标右键->打开文件所在的位置

然后就进入chrome的路径,

我电脑上的路径如下:G:\Program Files\Google\Chrome\Application 

然后只需要将我们复制的chromedriver.exe粘贴到这个目录下即可。

复制到python解释器路径下

接下来就是找到你的python解释器路径,也就是找python.exe的位置

比如我电脑上安装了python3.7.0和python3.8.2,我就在每个里面都粘贴了一次。

 

只有一个python的话,只需要粘贴一次就好了。 


一般来说,安装python的时候,网上教程都让你勾选上添加到环境变量里,所以到这里应该就结束了,我的教学也是到这里就结束了。

需要安装selenium的,可以在终端输入以下命令。

pip install selenium==4.1.1

否则安装版本过高可能会提示以下报错 

Exception managing chrome: error sending request for url (https://googlechromelabs.github.io/chrome-for-testing/known-good-versions-with-downloads.json): error trying to connect: 远程主机强迫关闭了一个现有的连接。 (os error 10054)

即 Exception managing chrome: error sending request for url (https://googlechromelabs.github.io/chrome-for-testing/known-good-versions-with-downloads.json): error trying to connect: 远程主机强迫关闭了一个现有的连接。 (os error 10054)

上面内容都搞好了后,可以进行简单的测试。

简单的测试

这个就是最简单的代码测试,里面没有隐藏

from selenium import webdriver
# Chrome浏览器
driver = webdriver.Chrome()
url = "https://www.baidu.com"
driver.get(url)

 因此就会出现chrome正受到自动测试软件的控制的文字。

 

经过伪装,其实用性大大加强,不会出现chrome正受到自动测试软件的控制的文字。

from selenium import webdriver

option = webdriver.ChromeOptions()
option.add_experimental_option('excludeSwitches', ['enable-automation'])
option.add_experimental_option('useAutomationExtension', False)
driver = webdriver.Chrome(options=option)
driver.execute_cdp_cmd('Page.addScriptToEvaluateOnNewDocument',
                            {'source': 'Object.defineProperty(navigator, "webdriver", {get: () => undefined})'})
url = "https://www.baidu.com"
driver.get(url)

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1497238.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Nginx启动服务

Nginx启动服务 一、启动前置 下载地址 如已安装Docker,下一步拉取Nginx最新的Docker镜像: docker pull nginx:latest查看拉取下来的镜像: docker images二、启动服务 创建Docker容器: docker run --name {projectname} -p 80…

开发充电桩APP提高管理效能

随着社会的发展,电动车已经成为城市交通的重要组成部分,用户所下载的充电类的APP也非常大,而充电桩的建设和利用效率成为了一个亟待解决的问题。在这个背景下,物联网技术的应用成为了提高充电桩效能的关键。虎克技术公司在此领域提…

3Dmax中VR渲染太阳光渲染参数怎么设置?渲染100云渲染助力

我们用3Dmax建模时一些场景会用到太阳光,那么渲染参数是如何设置的呢? 我们一起来看看,直接上图 以上就是详细的参数设置,大家可以用做参考,如果本地渲染慢的朋友可以考虑使用云渲染100 机器多,渲染稳定不…

Qt6.6搭建WebAssembly

1.首先安装python , 链接:https://www.python.org/ 2.下载并安装qt6. 3.克隆emsdk工程 3.1 进入emsdk目录,然后更新emsdk代码 3.2 下载并安装最新的SDK工具。(C:\Qt\emsdk>emsdk install --global latest) 3.3…

收银系统源码-智慧新零售2.0小助手全新升级!

欢迎后台私信,测试体验! 新零售助手是智慧新零售系统的移动管理端,尤其针对商户/门店日常经营必不可少的一环。智慧新零售2.0版小助手也进行了全新升级,使用起来更简单,页面更美观。小助手采用微信小程序登陆&#xf…

QEMU调试——通过获取设备树(dtb文件)查询开发板的外设地址信息

1、适用场景 使用qemu时,想快速知道开发板的地址空间映射情况,特别是某些外设控制器的寄存器基地址 2、查询QEMU支持的开发板 qemu-system-riscv32.exe -M ? 3、获取开发板对应的dtb文件 1、qemu-system-riscv32.exe -M nuclei_evalsoc 2、dumpdtb nucl…

【linuxC语言】系统调用IO文件操作

文章目录 前言一、文件描述符介绍二、系统调用IO API介绍2.1 open函数2.2 close函数2.3 read函数2.4 write函数2.5 lseek函数 三、示例代码总结 前言 在Linux系统中,C语言通过系统调用实现对文件的输入输出(I/O)操作。系统调用提供了访问操作…

Windows下JDK下载、配置Java环境变量配置及多个JDK使用

Windows下JDK下载、配置Java环境变量配置及多个JDK使用 1. Windows下配置Java-JDK环境变量 1.1 下载Windows版本JDK 下载地址:(https://www.oracle.com/java/technologies/javase/jdk17-archive-downloads.html) 1.2 Windows下安装JDK 双击进行安装 下一步&#xf…

SpringCloud 服务的注册与发现

一、前言 接下来是开展一系列的 SpringCloud 的学习之旅,从传统的模块之间调用,一步步的升级为 SpringCloud 模块之间的调用,此篇文章为第二篇,即使用服务注册和发现的组件,此篇文章会介绍 Eureka、Zookeeper 和 Consu…

ZYNQ linux笔记 --- Linux UIO框架下调用HLS ip核

目标 编写了 HLS IP核,实现对图像的缩放,已通过HLS 仿真验证和裸机验证,想在Linux端调用该IP 工程构建 简单描述一下,vdma出来连接 resize ip核,resize ip核后面接 vid_out ip resize ip核的 interrput 接口通过 xlconcat ip 连接到PS端中断接口IRQ,这一点很重要! 导…

透视和仿射变换的区别

仿射变换矩阵通常是2x3的矩阵。 三个特点: 直线依然是直线平行线依然平行 [ x ′ y ′ 1 ] [ a 11 a 12 b 1 a 21 a 22 b 2 0 0 1 ] [ x y 1 ] x ′ a 11 ∗ x a 12 ∗ y b 1 y ′ a 21 ∗ x a 22 ∗ y b 2 \begin{gathered} \begin{bmatrix}x\\y\\1\end{b…

2023年全国职业院校技能大赛 GZ073网络系统管理赛项 模块A:网络构建(运维配置)

1.完成整网连通后,进入网络监控运维阶段,运维软件已安装在PC的虚拟机中,通过运维平台监控拓扑中所有网络设备(AP除外)。考试现场提供运维平台登陆的用户名密码信息。 2.通过运维平台将被监控设备纳入监控范围;通过拓扑配置功能,将网络拓扑配置到平台中。

【视觉AIGC识别】误差特征、人脸伪造检测、其他类型假图检测

视觉AIGC识别——人脸伪造检测、误差特征 不可见水印 前言视觉AIGC识别【误差特征】DIRE for Diffusion-Generated Image Detection方法扩散模型的角色DIRE作为检测指标 实验结果泛化能力和抗扰动 人脸伪造监测(Face Forgery Detection)人脸伪造图生成 …

【Python】成功解决TypeError: ‘float‘ object is not iterable

【Python】成功解决TypeError: ‘float’ object is not iterable 🌈 个人主页:高斯小哥 🔥 高质量专栏:Matplotlib之旅:零基础精通数据可视化、Python基础【高质量合集】、PyTorch零基础入门教程👈 希望得…

为什么桌面领域没有一款 Linux 或 UNIX 能与 Windows 鼎足而立?

为什么桌面领域没有一款 Linux 或 UNIX 能与 Windows 鼎足而立? 在开始前我有一些资料,是我根据网友给的问题精心整理了一份「Linux 的资料从专业入门到高级教程」, 点个关注在评论区回复“888”之后私信回复“888”,全部无偿共享…

大数据揭秘!不得不提的企业数据查询的隐藏宝藏平台。

在现代社会,企业数据已经成为了衡量一个公司实力、潜力以及未来走势的重要指标之一。对于投资者、分析师和企业家来说,获取这些数据并进行深度分析显得尤为重要。那么,如何查询到企业的数据呢?本文将为您介绍一些可以查询企业数据…

sql server使用逗号,分隔保存多个id的一些查询保存

方案一,前后不附加逗号: 方案二,前后附加逗号: 其他保存方案: (这里是我做一个程序的商家日期规则搞得,后面再补具体操作): 1,2,3 | 1,2,3 | 1,2,3; 1,2,3 &#xff1…

尤雨溪:Vue 未来展望新的一轮

十年,一个既漫长又短暂的时光跨度,对于技术世界来说,更是沧海桑田的瞬间。在这十年里,Vue.js 从无到有,从默默无闻到蜚声全球,不仅改变了前端开发的面貌,更成为了无数开发者手中的得力工具。 在…

【常见索引使用】⭐️Mysql中索引的类型以及使用方式和失效场景

目录 一、前言 二、数据准备 三、索引的分类 四、索引示例 示例1、主键索引(Primary Key Index)与 唯一索引(Unique Index) 示例2、前缀索引(Prefix Index) 示例3、联合索引(复合索引&am…

鸿蒙 自定义弹窗对CustomDialogController二次封装

前言: 鸿蒙官方提供了自定义customdialog,调用代码很臃肿,必须在当前页面创建customDialogController,否则无法正常弹窗dialog 解决方案:目前就定义了两种类型的dialog 具体代码如下: 1. 用于代理dialog的…