pc端和移动端的网站区别是什么意思,彩票网站模版,木疙瘩h5制作,汉中建设工程招标网官网ChromeDriverManager 是 webdriver_manager 库的一部分#xff0c;它用于自动管理 ChromeDriver 的下载和更新。使用 ChromeDriverManager 可以避免手动下载 ChromeDriver 并匹配系统中安装的 Chrome 浏览器版本。以下是 ChromeDriverManager 的基本用法#xff1a;
步骤
1…ChromeDriverManager 是 webdriver_manager 库的一部分它用于自动管理 ChromeDriver 的下载和更新。使用 ChromeDriverManager 可以避免手动下载 ChromeDriver 并匹配系统中安装的 Chrome 浏览器版本。以下是 ChromeDriverManager 的基本用法
步骤
1.安装 webdriver_manager 库
pip install webdriver-manager
2.导入相关依赖
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.chrome.options import Options
from webdriver_manager.chrome import ChromeDriverManager
3.设置options参数optional
这边因为博主要做CI/CD 需要进行无头模式的设置所以是必需的
# 设置 Chrome 选项如果需要
chrome_options Options()
chrome_options.add_argument(--headless) # 无头模式
chrome_options.add_argument(--disable-gpu)
chrome_options.add_argument(--no-sandbox)
4.用chromedrivermanager安装驱动
# 使用 ChromeDriverManager 处理驱动安装
driver_path ChromeDriverManager().install()
service Service(driver_path)代码解释 ChromeDriverManager().install(): 目标: 自动管理 ChromeDriver 的安装。 功能: ChromeDriverManager() 是 webdriver_manager 包中的一个类它负责管理 Chrome 浏览器驱动的下载和更新。 方法 install(): 此方法检查系统上是否已经安装了 ChromeDriver以及它的版本是否与系统上的 Google Chrome 浏览器兼容。如果没有安装或者版本不正确它会自动下载与当前 Chrome 浏览器版本兼容的 ChromeDriver。 结果: install() 返回下载的 ChromeDriver 的文件路径。这是一个可执行文件的路径通常是 chromedriver 二进制文件在你的本地机器上的位置。 Service(driver_path): 目标: 启动 Selenium 的 Chrome WebDriver 服务。 功能: Service 是 Selenium 中的一个类用于代表驱动程序的后台服务。它主要负责启动、终止和管理生命周期中的驱动进程。 参数 driver_path: 这是 ChromeDriver 在本地系统上的路径由 ChromeDriverManager().install() 返回。将此路径传递给 Service 构造函数来告诉 Selenium 如何找到和使用 ChromeDriver。 使用: 当你创建一个 webdriver.Chrome 实例时你可以将创建好的 Service 对象作为参数传递使得 WebDriver 能够启动并与驱动程序正常通信。
整个过程 通过 ChromeDriverManager().install()避免手动下载并管理 ChromeDriver 的版本问题。 创建一个 Service 对象来确保在启动 WebDriver 时能够正确地引用和使用 ChromeDriver。 最终用于初始化 WebDriver例如 webdriver.Chrome(serviceservice))来启动一个新的浏览器实例。
这种方法简化了驱动安装的管理确保了驱动程序与浏览器版本的兼容性同时提高了代码的可维护性和稳定性。无论是在本地开发还是在CI/CD环境中这种自动化驱动管理的方式都非常有用。 5.初始化并执行测试
# 正确的 WebDriver 初始化方式
driver webdriver.Chrome(serviceservice)# 使用 WebDriver 做一些事情
driver.get(https://example.com)
print(driver.title)# 关闭浏览器
driver.quit()
基本用法示例
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from webdriver_manager.chrome import ChromeDriverManager# 使用 ChromeDriverManager 处理驱动安装
driver_path ChromeDriverManager().install()
service Service(driver_path)# 正确的 WebDriver 初始化方式
driver webdriver.Chrome(serviceservice)# 使用 WebDriver 做一些事情
driver.get(https://stage.me.sap.com/createIssue/0)
print(driver.title)# 关闭浏览器
driver.quit()
注意
在较新的 Selenium 版本中webdriver.Chrome 的构造函数不再接受 executable_path 作为参数而是使用 Service 对象来指定 ChromeDriver 的路径。 如果还用老的方法会出现下面的报错
# 创建 webdriver.Chrome 实例
driver webdriver.Chrome(executable_pathdriver_path)# 使用 WebDriver
driver.get(https://www.example.com) TypeError: WebDriver.__init__() got an unexpected keyword argument executable_path 拓展可自行了解 自动下载和更新: ChromeDriverManager().install() 方法会自动下载与系统安装的 Chrome 版本兼容的 ChromeDriver如果未安装或版本过旧则更新。 版本控制: 可以指定 ChromeDriver 的版本比如使用 ChromeDriverManager(version2.46).install() 来安装特定版本的驱动。 自定义路径: 如果需要把下载的驱动放在特定路径可以在运行时设置相关的环境变量来管理下载目录 import os
from webdriver_manager.chrome import ChromeDriverManageros.environ[WDM_LOCAL] 1 # 启用本地目录使用
os.environ[WDM_DIR] /path/to/store/driversdriver_path ChromeDriverManager().install() 日志和缓存控制: webdriver_manager 默认会缓存下载的驱动并在新版本发布时更新。对于调试和开发可以通过环境变量控制日志输出和缓存政策。