在我们使用 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
目前支持如下浏览器驱动:
官方地址: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)