selenium如何为对应浏览器自动化配对driver?

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了。

最后,微信搜索“码道工程”关注我的公众号,获取更多的文章。

本文作者:小码哥

本文链接:http://www.tnt0.com/archives/14

版权声明:本博客所有文章除特别声明外,均采用CC BY-NC-SA 3.0许可协议。转载请注明出处!

selenium如何为chrome使用带... <<
0 条评论

请先登陆注册

已登录,注销 取消