0


python webdriver-manager 实现selenium 免下载安装webdriver

python webdriver-manager 实现selenium 免下载安装webdriver

selenium在自动化测试中,通常需要使用浏览器驱动来与浏览器进行交互。然而,手动下载、安装、以及管理这些驱动非常麻烦,尤其是当驱动版本频繁更新时。为此,

webdriver-manager

库提供了一个极简的方案,自动帮我们下载、更新和管理驱动,使 Selenium 代码更简洁优雅。

webdriver-manager

git地址: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 为例:

  • Edgefrom selenium import webdriverfrom webdriver_manager.microsoft import EdgeChromiumDriverManagerdriver = webdriver.Edge(service=EdgeService(EdgeChromiumDriverManager().install()))
  • Firefoxfrom selenium import webdriverfrom webdriver_manager.firefox import GeckoDriverManagerdriver = webdriver.Firefox(service=FirefoxService(GeckoDriverManager().install()))

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

Webdriver Manager 的高级配置

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

  • **GitHub Token (GH_TOKEN)**:有时候从 GitHub 下载驱动会受限,设置 GitHub Token 可以绕过这个问题。import osos.environ['GH_TOKEN']='your_github_token'
  • **日志级别 (WDM_LOG)**:可以关闭 Webdriver Manager 的日志输出。os.environ['WDM_LOG']='0'
  • 缓存管理:默认情况下,驱动的缓存时间为 1 天,可以通过 cache_valid_range 参数自定义缓存时间。from webdriver_manager.chrome import ChromeDriverManagerfrom webdriver_manager.core.driver_cache import DriverCacheManagerChromeDriverManager(cache_manager=DriverCacheManager(valid_range=7)).install()

总结

webdriver-manager

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

标签: python selenium 爬虫

本文转载自: https://blog.csdn.net/weixin_44525227/article/details/143571691
版权归原作者 小马MT 所有, 如有侵权,请联系我们删除。

“python webdriver-manager 实现selenium 免下载安装webdriver”的评论:

还没有评论