Article directory
01 Introduction
When we use Selenium
for Web UI
automated testing, we usually need to download the corresponding browser version separately webdriver
, and in the later stage, we must repeatedly select the corresponding version for different operating systems ( mac
, windows
, linux
) or different browser versions webdriver
.
In order to solve this problem, webdriver-manager
third-party libraries came into being. It can automatically help you identify the system information and corresponding browser information in the current running environment, and automatically download the corresponding ones webdriver
. You no longer have to worry about webdriver
version issues!
webdriver-manager
The library provides a way to automatically manage different browser drivers. The main idea is to simplify the management of binary drivers for different browsers.
webdriver-manager
Supported Selenium 3
as well Selenium 4
. In the future, I will focus on each Selenium 3
and Selenium 4
teach you how to use it webdriver-manager
.
webdriver-manager
Currently the following browser drivers are supported:
- ChromeDriver
- EdgeChromiumDriver
- GeckoDriver
- IEDriver
- OperaDriver
02 Install webdriver_manager
Official address: https://pypi.org/project/webdriver-manager/
We can install it using the following command:pip install webdriver_manager
03 ChromeDriver
3.1 Selenium 3 usage
# selenium 3
from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager
# selenium 3的写法
driver = webdriver.Chrome(ChromeDriverManager().install())
3.2 Selenium 4 usage
# selenium 4
from selenium import webdriver
from selenium.webdriver.chrome.service import Service as ChromeService
# selenium 4的写法
driver = webdriver.Chrome(service=ChromeService(ChromeDriverManager().install()))
04 EdgeChromiumDriver
4.1 Selenium 3 usage
# selenium 3
from selenium import webdriver
from webdriver_manager.microsoft import EdgeChromiumDriverManager
# selenium 3
driver = webdriver.Edge(EdgeChromiumDriverManager().install())
4.2 Selenium 4 usage
# selenium 4
from selenium import webdriver
from selenium.webdriver.edge.service import Service as EdgeService
# selenium 4
driver = webdriver.Edge(service=EdgeService(EdgeChromiumDriverManager().install()))
05 GeckoDriver
5.1 Selenium 3 usage
# selenium 3
from selenium import webdriver
from webdriver_manager.firefox import GeckoDriverManager
# selenium 3
driver = webdriver.Firefox(executable_path=GeckoDriverManager().install())
5.2 Selenium 4 usage
# selenium 4
from selenium import webdriver
from selenium.webdriver.firefox.service import Service as FirefoxService
# selenium 4
driver = webdriver.Firefox(service=FirefoxService(GeckoDriverManager().install()))
06 IEDriver
6.1 Selenium 3 usage
# selenium 3
from selenium import webdriver
from webdriver_manager.microsoft import IEDriverManager
# selenium 3
driver = webdriver.Ie(IEDriverManager().install())
6.2 Selenium 4 usage
# selenium 4
from selenium import webdriver
from selenium.webdriver.ie.service import Service as IEService
# selenium 4
driver = webdriver.Ie(service=IEService(IEDriverManager().install()))
07 OperaDriver
7.1 Selenium 3 usage
# 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)
7.2 Selenium 4 usage
# 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)