Selenium自动化测试之自动管理不同浏览器驱动程序

一、背景

在以前,用Selenium做自动化测试时,你需要下载不同浏览器的驱动程序,并把它们解压到您的电脑上的某个地方,并设置路径,类似这样

from selenium import webdriver
driver = webdriver.Chrome('/home/user/drivers/chromedriver')

如果浏览器更新了,那么你还得去专门更新你的浏览器驱动程序driver,这显得非常的不智能,那么是否有更好的办法呢,确实是有的,你只需要安装一个第三方库,然后脚本简单修改一下,就可以自动化的更新浏览器驱动,具体如下:

二、安装

安装 webdriver-manager 库:在终端下使用 pip 命令进行安装。

pip install webdriver-manager

三、使用

测试脚本中导入相应的类和库

from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager
from webdriver_manager.firefox import GeckoDriverManager

1、chrome浏览器

# selenium 3
from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager

driver = webdriver.Chrome(ChromeDriverManager().install())
driver = webdriver.Chrome(ChromeDriverManager(version="2.41").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()))

其中,ChromeDriverManager().install() 会自动下载最新的 Chrome 驱动程序到临时目录,并返回该驱动程序的路径,这样就不用手动下载或管理驱动程序了。

2、edge浏览器

# selenium 3
from selenium import webdriver
from webdriver_manager.microsoft import EdgeChromiumDriverManager

driver = webdriver.Edge(EdgeChromiumDriverManager().install())


# selenium 4
from selenium import webdriver
from selenium.webdriver.edge.service import Service as EdgeService
from webdriver_manager.microsoft import EdgeChromiumDriverManager

driver = webdriver.Edge(service=EdgeService(EdgeChromiumDriverManager().install()))

3、Firefox浏览器

# selenium 3
from selenium import webdriver
from webdriver_manager.firefox import GeckoDriverManager

driver = webdriver.Firefox(executable_path=GeckoDriverManager().install())


# selenium 4
from selenium import webdriver
from selenium.webdriver.firefox.service import Service as FirefoxService
from webdriver_manager.firefox import GeckoDriverManager

driver = webdriver.Firefox(service=FirefoxService(GeckoDriverManager().install()))

4、测试脚本修改

from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager
from webdriver_manager.firefox import GeckoDriverManager
from webdriver_manager.microsoft import EdgeChromiumDriverManager

# 获取浏览器名称和版本号
browser_name = "chrome"  # 可选 "chrome", "firefox", "edge"
browser_version = "latest"  # 版本号,可选 "latest" 或具体版本号,如 "91.0.4472.77"

# 根据浏览器名称选择相应的驱动程序
if browser_name == "chrome":
    driver = webdriver.Chrome(ChromeDriverManager(version=browser_version).install())
elif browser_name == "firefox":
    driver = webdriver.Firefox(executable_path=GeckoDriverManager(version=browser_version).install())
elif browser_name == "edge":
    driver = webdriver.Edge(EdgeChromiumDriverManager(version=browser_version).install())

# 打开网址
driver.get("https://www.baidu.com")

# 其他操作...

# 关闭浏览器
driver.quit()

四、参考

1、https://pypi.org/project/webdriver-manager/

posted @ 2023-04-28 14:55  xyztank  阅读(122)  评论(0编辑  收藏  举报