使用webdriver-manager自动下载浏览器驱动,再也不用担心webdriver版本问题
01 简介
02 安装webdriver_manager
03 ChromeDriver
3.1 Selenium 3 用法
3.2 Selenium 4 用法
04 EdgeChromiumDriver
4.1 Selenium 3 用法
4.2 Selenium 4 用法
05 GeckoDriver
5.1 Selenium 3 用法
5.2 Selenium 4 用法
06 IEDriver
6.1 Selenium 3 用法
6.2 Selenium 4 用法
07 OperaDriver
7.1 Selenium 3 用法
7.2 Selenium 4 用法
在我们使用 Selenium 进行 Web UI 自动化测试时,通常需要自己单独去下载对应各浏览器版本的webdriver,并在后期针对不同操作系统(mac、windows、linux)或者不同浏览器版本都要反复选择对应版本webdriver。
为了解决这个问题,webdriver-manager 第三方库应运而生,它可以自动帮你识别当前运行环境下系统信息以及对应浏览器信息,并自动下载对应的webdriver,再也不用担心webdriver版本问题了!
webdriver-manager 库提供了自动管理不同浏览器驱动程序的方法。主要思想是简化不同浏览器的二进制驱动程序的管理。
webdriver-manager支持 Selenium 3以及 Selenium 4。后续我会分别针对 Selenium 3以及 Selenium 4教大家怎么使用webdriver-manager。
webdriver-manager目前支持如下浏览器驱动:
ChromeDriver
EdgeChromiumDriver
GeckoDriver
IEDriver
OperaDriver
官方地址:https://pypi.org/project/webdriver-manager/
我们可以使用如下命令安装:pip install webdriver_manager
# selenium 3
from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager
# selenium 3的写法
driver = webdriver.Chrome(ChromeDriverManager().install())
# selenium 4
from selenium import webdriver
from selenium.webdriver.chrome.service import Service as ChromeService
# selenium 4的写法
driver = webdriver.Chrome(service=ChromeService(ChromeDriverManager().install()))
# selenium 3
from selenium import webdriver
from webdriver_manager.microsoft import EdgeChromiumDriverManager
# selenium 3
driver = webdriver.Edge(EdgeChromiumDriverManager().install())
# selenium 4
from selenium import webdriver
from selenium.webdriver.edge.service import Service as EdgeService
# selenium 4
driver = webdriver.Edge(service=EdgeService(EdgeChromiumDriverManager().install()))
# selenium 3
from selenium import webdriver
from webdriver_manager.firefox import GeckoDriverManager
# selenium 3
driver = webdriver.Firefox(executable_path=GeckoDriverManager().install())
# selenium 4
from selenium import webdriver
from selenium.webdriver.firefox.service import Service as FirefoxService
# selenium 4
driver = webdriver.Firefox(service=FirefoxService(GeckoDriverManager().install()))
# selenium 3
from selenium import webdriver
from webdriver_manager.microsoft import IEDriverManager
# selenium 3
driver = webdriver.Ie(IEDriverManager().install())
# selenium 4
from selenium import webdriver
from selenium.webdriver.ie.service import Service as IEService
# selenium 4
driver = webdriver.Ie(service=IEService(IEDriverManager().install()))
# selenium 3
from selenium import webdriver
from selenium.webdriver.chrome import service
from webdriver_manager.opera import OperaDriverManager
# selenium 3
webdriver_service = service.Service(OperaDriverManager().install())
webdriver_service.start()
driver = webdriver.Remote(webdriver_service.service_url, webdriver.DesiredCapabilities.OPERA)
# selenium 4
from selenium import webdriver
from selenium.webdriver.chrome import service
from webdriver_manager.opera import OperaDriverManager
# selenium 4
webdriver_service = service.Service(OperaDriverManager().install())
webdriver_service.start()
options = webdriver.ChromeOptions()
options.add_experimental_option('w3c', True)
driver = webdriver.Remote(webdriver_service.service_url, options=options)