SeleniumManager
Webdriver Manager
简介
Webdriver Manager 为 Selenium 提供自动化的驱动程序和浏览器管理。
为什么会出现 selenium 驱动管理器
众所周知,selenium
的使用需要依赖两个关键要素:浏览器及其对应的驱动。在初始阶段,用户需要手动下载并配置浏览器驱动的环境。然而,由于浏览器频繁的更新,导致驱动版本也需要跟着更新,为解决这一问题,出现了三方的驱动管理管理工具,例如 java
的 WebDriverManager
、python
的 webdriver-manager
等。
webdriver-manager 的下载及使用
Python:
-
导入模块
pip install webdriver_manager pip install Selenium
-
针对 Chrome 浏览器的用法
selenium4.0 版本以下的用法
# Selenium4.0以下版本使用该方法 from selenium import webdriver from webdriver_manager.chrome import ChromeDriverManager # 使用 ChromeDriverManager 安装 ChromeDriver,并返回驱动程序的路径 driver_path = ChromeDriverManager().install() # 打印驱动程序路径 print(driver_path) # 创建 Chrome WebDriver,并指定驱动路径 driver = webdriver.Chrome(executable_path=driver_path) # 打开百度网页 driver.get("https://www.baidu.com")
selenium4.0y 以上的版本
# Selenium4.0以上版本使用该方法 from selenium import webdriver from selenium.webdriver.chrome.service import Service from webdriver_manager.chrome import ChromeDriverManager # 使用 ChromeDriverManager 安装 ChromeDriver,并返回驱动程序的路径 driver_path = ChromeDriverManager().install() # 打印驱动程序的路径 print(driver_path) # 创建 ChromeDriver 服务,并指定驱动程序的路径 service = Service(driver_path) # 创建 Chrome WebDriver,并指定服务 driver = webdriver.Chrome(service=service) # 打开百度网页 driver.get("https://www.baidu.com")
下载驱动到指定目录
# Selenium4.0以上版本使用该方法 import os import shutil from selenium import webdriver from selenium.webdriver.chrome.service import Service from webdriver_manager.chrome import ChromeDriverManager # 指定驱动目标位置 folder_path = r'C:\Users\admin\Desktop\run' # 路径拼接 file_path = os.path.join(folder_path, 'chromedriver.exe') # 使用ChromeDriverManager安装ChromeDriver,并获取驱动程序的路径 download_driver_path = ChromeDriverManager().install() # 复制文件到目标位置 shutil.copy(download_driver_path, folder_path) # 创建Chrome WebDriver,并指定驱动路径 driver = webdriver.Chrome(service=Service(file_path)) # 打开百度网页 driver.get("https://www.baidu.com")
-
Edge 用法
selenium4.0 以下版本使用方法
# Selenium4.0以下版本使用该方法 from selenium import webdriver from webdriver_manager.microsoft import EdgeChromiumDriverManager driver = webdriver.Edge(executable_path=EdgeChromiumDriverManager().install()) driver.get("https://www.baidu.com")
selenium4.0 以上版本用法
# Selenium4.0以上版本使用该方法 from selenium import webdriver from selenium.webdriver.edge.service import Service from webdriver_manager.microsoft import EdgeChromiumDriverManager service = Service(EdgeChromiumDriverManager().install()) driver = webdriver.Edge(service=service) driver.get("https://www.baidu.com")
-
firefox 用法
selenium4.0 版本以下用法
# Selenium4.0以下版本使用该方法 from selenium import webdriver from webdriver_manager.firefox import GeckoDriverManager driver = webdriver.Firefox(executable_path=GeckoDriverManager().install()) driver.get("https://www.baidu.com")
selenium4.0 版本以上用法
# Selenium4.0以上版本使用该方法 from selenium import webdriver from selenium.webdriver.firefox.service import Service from webdriver_manager.firefox import GeckoDriverManager service = Service(GeckoDriverManager().install()) driver = webdriver.Firefox(service=service) driver.get("https://www.baidu.com")
Java:
安装:
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>WebDriverManager</artifactId>
</dependency>
总结
webdriver-manager 可以自动检索浏览器的版本,并且自动下载对应的 driver 驱动,以应对频繁更新的浏览器版本,免去了需要反复下载合适版本的浏览器驱动的不便之处。