selenium如何为对应浏览器自动化配对driver?
1、前言
之前在 实用小技巧:如何为Chrome配对chromedriver? 提到了如何为chrome配对chromedriver,但是如果我们只想快速的启动浏览器,验证我们的想法,有没有办法自动化进行配对?
当然可以,有人会说我们直接写个python脚本直接把文章提到的过程自动化嘛,这是一种思路,不过我们没有必要重新写代码,因为已经有人帮我们实现好了,那就是:webdriver-manager
它可以自动化的帮我们下载对应的driver,而且不止chromedriver,支持: - ChromeDriver
-
GeckoDriver
-
IEDriver
-
OperaDriver
-
EdgeChromiumDriver
废话不多说,我们来看看怎么使用吧。
2、解决方案
安装
pip install webdriver-manager
使用比如chrome: 以前我们的方式是:
from selenium import webdriver
driver = webdriver.Chrome(
"./chromedriver")
现在我们只需要:
from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager
driver = webdriver.Chrome(ChromeDriverManager().install())
可以看到以下的输出,运行这段代码会自动去根据本机的chrome去下载对应版本的chromedriver
====== WebDriver manager ======
Current google-chrome version is 91.0.4472
Get LATEST driver version for 91.0.4472
There is no [mac64] chromedriver for browser 91.0.4472 in cache
Get LATEST driver version for 91.0.4472
Trying to download new driver from https://chromedriver.storage.googleapis.com/91.0.4472.101/chromedriver_mac64.zip
其实与我们手动去下载对应版本一样的,不过webdriver_manager会默认帮我们把driver放在此:~/.wdm,也就是家目录下的.wdm隐藏文件夹里,比如linux,我们的用户名叫xxx那么driver就会默认保存在/home/xxx/.wdm下面,当然我们可以指定driver存放的目录,而且还可以指定它过期时间,我们来看看ChromeDriverManager都有什么参数:
ChromeDriverManager(
version='latest',
os_type='mac64',
path=None,
name='chromedriver',
url='https://chromedriver.storage.googleapis.com',
latest_release_url='https://chromedriver.storage.googleapis.com/LATEST_RELEASE',
chrome_type='google-chrome',
log_level=20,
print_first_line=True,
cache_valid_range=1,
)
其中path就是我们指定的存放driver的目录。cache_valid_range参数就是指定driver的缓存时间,默认是1天,1天后会重新下载。
除了chrome其他的浏览器对应的driver下载方式基本差不多。 - chromium
from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager
from webdriver_manager.utils import ChromeType
driver = webdriver.Chrome(ChromeDriverManager(chrome_type=ChromeType.CHROMIUM).install())
- firefox
from selenium import webdriver
from webdriver_manager.firefox import GeckoDriverManager
driver = webdriver.Firefox(executable_path=GeckoDriverManager().install())
- IE
from selenium import webdriver
from webdriver_manager.microsoft import IEDriverManager
driver = webdriver.Ie(IEDriverManager().install())
- Edge
from selenium import webdriver
from webdriver_manager.microsoft import EdgeChromiumDriverManager
driver = webdriver.Edge(EdgeChromiumDriverManager().install())
- Opera
from selenium import webdriver
from webdriver_manager.opera import OperaDriverManager
driver = webdriver.Opera(executable_path=OperaDriverManager().install())
好了,以后妈妈再也不用担心如何给selenium下载driver了。
最后,微信搜索“码道工程”关注我的公众号,获取更多的文章。
请先登陆 或 注册