前言
- webdriver_manager是什么?
webdriver_manager 是 Python 中的一個(gè)庫(kù),用于管理 Web 驅(qū)動(dòng)程序。它的作用是自動(dòng)下載和設(shè)置不同瀏覽器(如 Chrome、Firefox、Edge 等)的 Web 驅(qū)動(dòng)程序,以便在自動(dòng)化測(cè)試中使用這些瀏覽器。文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-674281.html
在進(jìn)行 Selenium 測(cè)試時(shí),需要一個(gè)與瀏覽器相匹配的 Web 驅(qū)動(dòng)程序,以便控制和操作瀏覽器。webdriver_manager 為您提供了一種簡(jiǎn)便的方式,可以自動(dòng)檢測(cè)所需瀏覽器的版本并下載相應(yīng)的 Web 驅(qū)動(dòng)程序。這樣,您就不需要手動(dòng)下載和設(shè)置 Web 驅(qū)動(dòng)程序,可以減輕您的負(fù)擔(dān),提高測(cè)試的可靠性和可維護(hù)性。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-674281.html
一、導(dǎo)入模塊
pip install webdriver_manager
pip install Selenium
二、Chrome用法
# Selenium4.0以下版本使用該方法
from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager
# 使用 ChromeDriverManager 安裝 ChromeDriver,并返回驅(qū)動(dòng)程序的路徑
driver_path = ChromeDriverManager().install()
# 打印驅(qū)動(dòng)程序路徑
print(driver_path)
# 創(chuàng)建 Chrome WebDriver,并指定驅(qū)動(dòng)路徑
driver = webdriver.Chrome(executable_path=driver_path)
# 打開百度網(wǎng)頁(yè)
driver.get("https://www.baidu.com")
# Selenium4.0以上版本使用該方法
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from webdriver_manager.chrome import ChromeDriverManager
# 使用 ChromeDriverManager 安裝 ChromeDriver,并返回驅(qū)動(dòng)程序的路徑
driver_path = ChromeDriverManager().install()
# 打印驅(qū)動(dòng)程序的路徑
print(driver_path)
# 創(chuàng)建 ChromeDriver 服務(wù),并指定驅(qū)動(dòng)程序的路徑
service = Service(driver_path)
# 創(chuàng)建 Chrome WebDriver,并指定服務(wù)
driver = webdriver.Chrome(service=service)
# 打開百度網(wǎng)頁(yè)
driver.get("https://www.baidu.com")
- 下載驅(qū)動(dòng)到指定目錄中
# Selenium4.0以上版本使用該方法
import os
import shutil
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from webdriver_manager.chrome import ChromeDriverManager
# 指定驅(qū)動(dòng)目標(biāo)位置
folder_path = r'C:\Users\admin\Desktop\run'
# 路徑拼接
file_path = os.path.join(folder_path, 'chromedriver.exe')
# 使用ChromeDriverManager安裝ChromeDriver,并獲取驅(qū)動(dòng)程序的路徑
download_driver_path = ChromeDriverManager().install()
# 復(fù)制文件到目標(biāo)位置
shutil.copy(download_driver_path, folder_path)
# 創(chuàng)建Chrome WebDriver,并指定驅(qū)動(dòng)路徑
driver = webdriver.Chrome(service=Service(file_path))
# 打開百度網(wǎng)頁(yè)
driver.get("https://www.baidu.com")
- 以下代碼是判斷谷歌瀏覽器版本和谷歌驅(qū)動(dòng)版本是否一致,不一致則重新下載
# Selenium4.0以上版本使用該方法
import os
import shutil
import subprocess
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from webdriver_manager.chrome import ChromeDriverManager
def determine_google_drive():
"""判斷谷歌驅(qū)動(dòng)版本是否和谷歌瀏覽器版本一致"""
# 谷歌瀏覽器可執(zhí)行文件的完整路徑
chrome_path = r'C:\\Program Files\\Google\\Chrome\\Application\\chrome.exe'
# 指定谷歌驅(qū)動(dòng)目標(biāo)位置
folder_path = r'C:\Users\admin\Desktop\run'
# 驅(qū)動(dòng)名稱
file_name = 'chromedriver.exe'
# 路徑拼接
file_path = os.path.join(folder_path, file_name)
if os.path.exists(file_path):
# 獲取chromedriver.exe版本(谷歌瀏覽器驅(qū)動(dòng))
result = subprocess.run([file_path, '--version'], capture_output=True, text=True)
driverversion = '.'.join(result.stdout.strip().split(' ')[1].split('.')[:-1])
# 獲取chrome.exe版本(谷歌瀏覽器)
command = f'wmic datafile where name="{chrome_path}" get Version /value'
result_a = subprocess.run(command, capture_output=True, text=True, shell=True)
output = result_a.stdout.strip()
chromeversion = '.'.join(output.split('=')[1].split('.')[0:3])
# 判斷版本是否一致,不一致就重新下載
if driverversion != chromeversion:
# 使用ChromeDriverManager安裝ChromeDriver,并獲取驅(qū)動(dòng)程序的路徑
download_driver_path = ChromeDriverManager().install()
# 復(fù)制文件到目標(biāo)位置
shutil.copy(download_driver_path, folder_path)
else:
print("版本一致,無(wú)需重新下載!")
else:
download_driver_path = ChromeDriverManager().install()
shutil.copy(download_driver_path, folder_path)
return file_path
if __name__ == '__main__':
# 創(chuàng)建Chrome WebDriver,并指定驅(qū)動(dòng)路徑
driver = webdriver.Chrome(service=Service(determine_google_drive()))
# 打開百度網(wǎng)頁(yè)
driver.get("https://www.baidu.com")
三、Edge用法
# 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以上版本使用該方法
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以下版本使用該方法
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以上版本使用該方法
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")
到了這里,關(guān)于Selenium webdriver_manager根據(jù)瀏覽器版本自動(dòng)下載對(duì)應(yīng)驅(qū)動(dòng)程序的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!