ChromeDriverManager:自动下载和管理chromedriver版本

一、背景

在使用Selenium进行浏览器自动化测试时,需要配置chromedriver。但是chromedriver需要与本地Chrome浏览器版本匹配,不同操作系统对应的chromedriver版本也不同。遇到Chrome浏览器更新时也都需要手动下载新的chromedriver版本替换,同时考虑操作系统版本,将非常麻烦。

二、ChromeDriverManager的作用

ChromeDriverManager可以自动下载和管理chromedriver。它可以:

  • 根据本地Chrome浏览器版本自动下载匹配的chromedriver
  • 自动判断操作系统版本,下载对应版本的chromedriver
  • 设置chromedriver的下载目录,方便管理
    这样就无需关心chromedriver的版本和路径,可以降低测试维护的成本。

三、ChromeDriverManager的使用方法

  1. 安装webdriver_manager模块
py 复制代码
pip install webdriver_manager
  1. 导入ChromeDriverManager和webdriver模块
py 复制代码
from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager
  1. 创建ChromeDriverManager对象,指定下载路径(可选)
py 复制代码
manager = ChromeDriverManager(path="./drivers")
  1. 调用install()方法下载匹配版本的chromedriver
py 复制代码
driver_path = manager.install()
  1. 创建Service对象,传入chromedriver路径
py 复制代码
service = Service(driver_path)
  1. 创建ChromeDriver,传入service参数
py 复制代码
driver = webdriver.Chrome(service=service)

这样就可以通过简单的代码自动下载和配置chromedriver,非常方便。

四、主要优点

  • 自动管理chromedriver,使代码简洁,无需指定chromedriver路径
  • 随Chrome浏览器更新自动获取对应版本的chromedriver
  • 自动判断操作系统版本,下载正确的chromedriver
  • 可以设置chromedriver下载目录,不会污染项目目录
  • 提高代码可移植性,可轻松运行在不同机器上

五、完整示例

下面是一个使用ChromeDriverManager的完整示例:

py 复制代码
from selenium import webdriver
from selenium.webdriver.chrome.service import Service  # 导入Service类
import os

from selenium.webdriver.common.by import By
from webdriver_manager.chrome import ChromeDriverManager
import time

current_dir = os.path.dirname(os.path.abspath(__file__))
# 获取当前文件所在目录的绝对路径

driver_path = os.path.join(current_dir, 'drivers')
# 设置驱动下载目录为当前目录下的drivers文件夹
os.makedirs(driver_path, exist_ok=True)
# 创建目录 如果存在则跳过创建

manager = ChromeDriverManager(path=driver_path)
# 设置驱动下载管理器下载路径
chromedriver_path = manager.install()
# 下载匹配本地Chrome版本的驱动

# 创建驱动服务对象,传入下载的驱动执行路径
service = Service(chromedriver_path)

# 创建Chrome浏览器驱动时,传入驱动服务对象
# 该服务包含了驱动的路径,版本等信息
driver = webdriver.Chrome(service=service)

# 后续正常编写网页自动化代码
target_url = "https://www.baidu.com"
driver.get(target_url)
print(f"成功访问网页:{target_url}")
sleep(5)

driver.quit()

参考链接:https://blog.csdn.net/qq_42531954/article/details/131863711

相关推荐
用户0332126663679 小时前
使用 Python 从零创建 Word 文档
python
Csvn14 小时前
Python 两大经典坑点 —— 可变默认参数 & 闭包延迟绑定
后端·python
曲幽15 小时前
别再用网页翻译看源码了!你的私人翻译神器LibreTranslate,部署避坑指南来了
python·docker·web·pot·translate·libretranslate·arogstranslate
用户5569188175317 小时前
#从脚本到独立程序:Python + Playwright 批量抓取的完整踩坑记录
python·自动化运维
兵慌码乱1 天前
基于 MediaPipe 与 PySide2 的手势交互音乐控制系统实现:轻量化视觉交互全流程解析
python·opencv·计算机视觉·人机交互·手势识别·mediapipe·pyside2
luckdewei1 天前
FastAPI 资产管理系统实战:复杂 ORM 关联、Alembic 迁移与 N+1 查询优化
python
aqi002 天前
15天学会AI应用开发(八)使用向量数据库实现RAG功能
人工智能·python·大模型·ai编程·ai应用
Csvn2 天前
`functools.lru_cache` —— 一行代码搞定缓存加速
后端·python
金銀銅鐵2 天前
[Python] 从《千字文》中随机挑选汉字
后端·python