selenium在自动化测试中,通常需要使用浏览器驱动来与浏览器进行交互。然而,手动下载、安装、以及管理这些驱动非常麻烦,尤其是当驱动版本频繁更新时。为此,webdriver-manager库提供了一个极简的方案,自动帮我们下载、更新和管理驱动,使 Selenium 代码更简洁优雅。

webdriver-managergit地址:GitHub - SergeyPirogov/webdriver_manager

webdriver对比

在没有 Webdriver Manager 的情况下,我们需要手动完成以下步骤:

  1. 下载对应浏览器的驱动程序。
  2. 将其解压到本地路径。
  3. 在代码中手动指定驱动路径。

每当驱动更新时,这个流程需要重复。使用 Webdriver Manager 后,我们只需两步:

  1. 安装 Webdriver Manager
  2. 在代码中调用 Webdriver Manager 进行驱动自动下载和管理。

支持的浏览器

webdriver-manager 是一个 Python 库,它的主要作用是自动管理不同浏览器的驱动程序。支持的浏览器包括:

  • Chrome
  • Edge
  • Firefox
  • IE
  • Opera

使用教程

安装Webdriver Manager

pip install webdriver-manager

在代码中使用

1、使用Chrome驱动

在 Selenium 3 和 Selenium 4 中,代码略有不同:
查看Selenium版本:

pip list | grep selenium

Selenium 3

from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager

driver = webdriver.Chrome(ChromeDriverManager().install())

Selenium 4

from selenium import webdriver
from selenium.webdriver.chrome.service import Service as ChromeService
from webdriver_manager.chrome import ChromeDriverManager

driver = webdriver.Chrome(service=ChromeService(ChromeDriverManager().install()))

2.其他浏览器中使用

类似地,Webdriver Manager 也支持 Edge、Firefox、IE 和 Opera 浏览器。这里以 Edge 和 Firefox 为例:

  • Edge

    from selenium import webdriver
    from webdriver_manager.microsoft import EdgeChromiumDriverManager
    
    driver = webdriver.Edge(service=EdgeService(EdgeChromiumDriverManager().install()))
  • Firefox

    from selenium import webdriver
    from webdriver_manager.firefox import GeckoDriverManager
    
    driver = webdriver.Firefox(service=FirefoxService(GeckoDriverManager().install()))

Webdriver Manager 会自动检测系统和浏览器的版本,并下载相应的驱动,非常适合那些需要频繁更新的项目。

Webdriver Manager 的高级配置

Webdriver Manager 允许通过环境变量或代码直接设置多个配置。以下是一些常见的配置项:

  • GitHub Token (GH_TOKEN):有时候从 GitHub 下载驱动会受限,设置 GitHub Token 可以绕过这个问题。

    import os
    os.environ['GH_TOKEN'] = 'your_github_token'
  • 日志级别 (WDM_LOG):可以关闭 Webdriver Manager 的日志输出。

    os.environ['WDM_LOG'] = '0'
  • 缓存管理:默认情况下,驱动的缓存时间为 1 天,可以通过 cache_valid_range 参数自定义缓存时间。

    from webdriver_manager.chrome import ChromeDriverManager
    from webdriver_manager.core.driver_cache import DriverCacheManager
    
    ChromeDriverManager(cache_manager=DriverCacheManager(valid_range=7)).install()

总结

webdriver-manager 简化了浏览器驱动管理,让我们的自动化测试更加简洁高效。只需几行代码,我们就可以轻松地集成不同的浏览器驱动,专注于测试逻辑,而不用担心驱动版本的更新和路径配置。


Loading
1 声望0 粉丝