博客 / 詳情

返回

python webdriver-manager 實現selenium 免下載安裝webdriver

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 簡化了瀏覽器驅動管理,讓我們的自動化測試更加簡潔高效。只需幾行代碼,我們就可以輕鬆地集成不同的瀏覽器驅動,專注於測試邏輯,而不用擔心驅動版本的更新和路徑配置。

user avatar
0 位用戶收藏了這個故事!

發佈 評論

Some HTML is okay.