Mac快速安装 chromedriver驱动

全篇大概1200字(含代码),建议阅读时间5分钟。

什么是chromedriver?

       ChromeDriver 充当了 Selenium WebDriver 和 Chrome 浏览器之间的桥梁,允许开发者通过编程控制浏览器进行自动化测试或操作。

一、下载chromedriver

谷歌浏览器 114以下版本,去这里下载驱动 下载驱动icon-default.png?t=O83Ahttp://chromedriver.storage.googleapis.com/index.html

谷歌浏览器131版本, 去这里下载驱动

下载驱动icon-default.png?t=O83Ahttps://googlechromelabs.github.io/chrome-for-testing/#stable

二、安装

下载完成后,目录是这样的

我们要将chromedriver 这个可执行文件移动到目录 /usr/local/bin/

打开终端进入带有chromedriver的目录

2.1 移动可扩展文件

运行以下命令,移动到对应目录

sudo mv chromedriver /usr/local/bin/

2.2 加权限

运行以下命令,确保新安装的 ChromeDriver 可执行

sudo chmod +x /usr/local/bin/chromedriver

2.3 查看版本

运行以下命令,检查 ChromeDriver 的版本是否正确

chromedriver --version

出现以下信息,说明安装成功

 

三、测试

打开PyCharm开发工具, 创建对应py文件。

from time import sleep
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC# 初始化浏览器
driver = webdriver.Chrome()
driver.get("https://www.baidu.com/")# 等待搜索框可见并输入
search_box = WebDriverWait(driver, 10).until(EC.visibility_of_element_located((By.ID, 'kw'))
)
search_box.send_keys('小那同学')# 等待搜索按钮可点击并点击
search_button = WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.ID, 'su'))
)
search_button.click()# 等待搜索结果加载
sleep(3)# 关闭浏览器
driver.close()

四、总结

ChromeDriver 是 Web 自动化测试和浏览器自动化操作的核心组件之一,它能让开发者通过代码自动控制 Google Chrome 浏览器,从而实现自动化测试、数据抓取等操作。

希望这篇文章对你有所帮助,如果有任何问题或改进建议,欢迎在评论区留言!

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

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

相关文章

【网络安全】网站常见安全漏洞 - 网站基本组成及漏洞定义

文章目录 引言1. 一个网站的基本构成2. 一些我们经常听到的安全事件3. 网站攻击者及其意图3.1 网站攻击者的类型3.2 攻击者的意图 4. 漏洞的分类4.1 按来源分类4.2 按危害分类4.3 常见漏洞与OWASP Top 10 引言 在当今的数字化时代,安全问题已成为技术领域不可忽视的…

快速上手 RabbitMQ:使用 Docker 轻松搭建消息队列系统

在现代的分布式系统中,消息队列(Message Queue)是实现异步通信、解耦系统组件、提高系统可扩展性和可靠性的重要工具。RabbitMQ 是一个广泛使用的开源消息代理软件,它实现了高级消息队列协议(AMQP)&#xf…

字符串函数和内存函数

字符串函数 1、strlcpy 【字符串拷贝】 (将原字符串中的字符拷贝到目标字符数组中,包括终止符号\0,并在这里停止;为了避免越界,目标字符串数组应该足够大去接收)👆 (返回值是 dest…

【机器学习】窥数据之序,悟算法之道:机器学习的初心与远方

文章目录 机器学习入门:从零开始学习基础与应用前言第一部分:什么是机器学习?1.1 机器学习的定义1.1.1 举个例子:垃圾邮件分类器 1.2 机器学习的核心思想1.2.1 数据驱动的模式提取1.2.2 为什么机器学习比传统方法更灵活&#xff1…

Dataset用load_dataset读图片和对应的caption的一个坑

代码: data_files {} if args.train_data_dir is not None:data_files["train"] os.path.join(args.train_data_dir, "**")dataset load_dataset("imagefolder",data_filesdata_files,cache_dirargs.cache_dir,) 数据&#xff1…

SpringBoot连接多数据源MySQL、SqlServer等(MyBatisPlus测试)

SpringBoot连接多数据源MySQL、SqlServer等(MyBatisPlus测试) 在实际的项目开发中,我们往往需要同时连接多个数据源对数据进行处理。本文将详细介绍在SpringBoot下配合MybatisPlus如何连接多数据源,实例将会使用连接MySQL、SqlSe…

GPS模块/SATES-ST91Z8LR:电路搭建;直接用电脑的USB转串口进行通讯;模组上报定位数据转换地图识别的坐标手动查询地图位置

从事嵌入式单片机的工作算是符合我个人兴趣爱好的,当面对一个新的芯片我即想把芯片尽快搞懂完成项目赚钱,也想着能够把自己遇到的坑和注意事项记录下来,即方便自己后面查阅也可以分享给大家,这是一种冲动,但是这个或许并不是原厂希望的,尽管这样有可能会牺牲一些时间也有哪天原…

认识自定义协议

经过前面的介绍,我们知道TCP/IP协议有一组五层模型,从上往下为应用层、传输层、网络层、数据链路层和物理层,且在网络中传输的数据都必须经过这几层模型的封装和分用,作为程序员,我们最经常打交道的就是应用层。程序员…

【论文复现】隐式神经网络实现低光照图像增强

📝个人主页🌹:Eternity._ 🌹🌹期待您的关注 🌹🌹 ❀ 隐式神经网络实现低光照图像增强 引言那么目前低光照图像增强还面临哪些挑战呢? 挑战1. 不可预测的亮度降低和噪声挑战2.度量友好…

电商项目-微服务网关限流

一、微服务网关限流 我们之前说过,网关可以做很多的事情,比如,限流,当我们的系统被频繁的请求 的时候,就有可能将系统压垮,所以为了解决这个问题,需要在每一个微服务中做限流 操作,但…

数据链路层(四)---PPP协议的工作状态

1 PPP链路的初始化 通过前面几章的学习,我们学了了PPP协议帧的格式以及组成,那么对于使用PPP协议的链路是怎么初始化的呢? 当用户拨号上网接入到ISP后,就建立起了一条个人用户到ISP的物理链路。这时,用户向ISP发送一…

模拟机器故障

模拟机器故障情况 #!/bin/bashdeclare -a aryfor i in seq 40 49 doary[$i]" "echo -en "\e[$i;5m ${ary[]}\e[;0m"donedeclare -a ary for s in seq 1 10000 dofor i in seq 40 49doary[$i]" "echo -en "\e[$i;5m ${ary[]}\e[;0m" …

创建的空 OpenCV 安卓应用程序以支持摄像头

在本节中&#xff0c;我们将扩展上一节中创建的空 OpenCV 应用程序以支持摄像头。我们将获取摄像头帧并将其显示在屏幕上。 告诉系统我们需要相机权限。将以下代码添加到文件MyApplication/app/src/main/AndroidManifest.xml&#xff1a; <uses-permission android:name&qu…

JAVA 架构师面试 100套含答案:JVM+spring+ 分布式 + 并发编程》...

今年的行情&#xff0c;让招聘面试变得雪上加霜。已经有不少大厂&#xff0c;如腾讯、字节跳动的招聘名额明显减少&#xff0c;面试门槛却一再拔高&#xff0c;如果不用心准备&#xff0c;很可能就被面试官怼得哑口无言&#xff0c;甚至失去了难得的机会。 现如今&#xff0c;…

Web3与区块链如何通过智能合约实现自动化生态?

Web3和区块链正在重塑互联网的未来&#xff0c;其核心在于去中心化和用户数据自主权。而作为区块链技术的重要组成部分&#xff0c;智能合约通过自动执行预设规则&#xff0c;大大提升了效率和安全性。本文将探讨Web3与区块链如何通过智能合约实现生态的自动化。 什么是智能合约…

【机器学习】机器学习的基本分类-监督学习-随机森林(Random Forest)

随机森林是一种基于集成学习&#xff08;Ensemble Learning&#xff09;思想的算法&#xff0c;由多个决策树构成。它通过结合多棵决策树的预测结果来提升模型的泛化能力和准确性&#xff0c;同时减少过拟合的风险。 1. 随机森林的核心思想 多样性&#xff1a; 随机森林通过引…

MongoDB集群的介绍与搭建

一.MongoDB集群的介绍 注意&#xff1a;Mongodb是一个比较流行的NoSQL数据库&#xff0c;它的存储方式是文档式存储&#xff0c;并不是Key-Value形式&#xff1b; MongoDB集群的优势主要体现在以下几个方面&#xff1a; (1)高可用性 MongoDB集群支持主从复制和故障转移机制&…

防抖与节流

防抖 当某个事件触发时&#xff0c;等待一段时间再执行函数。如果在这段时间内事件再次被触发&#xff0c;那么就重新计时&#xff0c;换句话说&#xff0c;防抖可以确保函数在事件结束后才被执行&#xff0c;避免了多次触发。 应用场景&#xff1a; 搜索框输入&#xff1a;…

DKMS介绍

文章目录 一、安装DKMS二、DKMS使用示例1. 源码准备2. 增加dkms.conf3. 添加模块4. 编译模块5. 安装模块 三、基于DKMS的deb安装包制作 Dynamic Kernel Module Support&#xff08;DKMS)是一个用于动态管理内核模块的框架&#xff0c;由DELL创建的项目&#xff0c;它可以帮我们…

【LeetCode】498.对角线遍历

无论何时何地&#xff0c;我都认为对于一道编程题&#xff0c;思考解法的时间用于是实际动手解决问题的2倍&#xff01;如果敲键盘编码需要5min&#xff0c;那么思考解法的过程至少就需要10分钟。 1. 题目 2. 思想 其实这就是一道模拟题&#xff0c;难度中等。做这种题的关键就…