Skip to content

SeleniumManager

Webdriver Manager

简介

Webdriver Manager 为 Selenium 提供自动化的驱动程序和浏览器管理。

为什么会出现 selenium 驱动管理器

众所周知,selenium 的使用需要依赖两个关键要素:浏览器及其对应的驱动。在初始阶段,用户需要手动下载并配置浏览器驱动的环境。然而,由于浏览器频繁的更新,导致驱动版本也需要跟着更新,为解决这一问题,出现了三方的驱动管理管理工具,例如 javaWebDriverManagerpythonwebdriver-manager 等。

webdriver-manager 的下载及使用

Python:

  1. 导入模块

    pip install webdriver_manager
    pip install Selenium
    
  2. 针对 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")
    
  3. 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")
    
  4. 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 驱动,以应对频繁更新的浏览器版本,免去了需要反复下载合适版本的浏览器驱动的不便之处。