一个下载管理浏览器驱动的python库, 优先使用国内镜像源, 单文件少依赖,调用简单,复制即用,可作为 webdriver_manager 库的国内替代
- 获取驱动时,优先用国内镜像源,下载更快
- 下载的驱动永久保存,每次执行时判断旧版本数量,只保留一个旧版本驱动的冗余
- 代码精简,单文件,只需复制 ez_webdriver.py 文件到自己项目即可使用
- 修改方便,如果有新增镜像源,仅需写一个处理镜像源链接的函数即可
- 可以识别arm平台
谷歌浏览器/ChromeDriver 火狐浏览器/GeckoDriver Edge浏览器/EdgeChromiumDriver IE浏览器/IEDriver
方法1 : pip安装
pip install ez-webdriver
import ez_webdriver
ez_webdriver.chrome() # 返回驱动文件绝对路径(str)
方法2 : 拷贝
ez-webdriver.py
文件,直接使用
from ez_webdriver import chrome,firefox
chrome(version='107.0') # 返回指定版本驱动文件绝对路径(str)
谷歌浏览器 | 火狐浏览器 | Edge浏览器 | IE浏览器 |
---|---|---|---|
ez_webdriver.chrome() | ez_webdriver.firefox() | ez_webdriver.edge() | ez_webdriver.ie() |
以上4个方法, 均会返回一个驱动的 Path
对象,或者 False
(自动下载对应驱动版本)
总之,仅需将上面4个之一赋值给 webdriver
的位置参数即可正常使用
# selenium 4 (省略部分import,见示例)
import ez_webdriver
driver = webdriver.Chrome(service=Service(ez_webdriver.chrome()))
# selenium 3 (省略部分import,见示例)
import ez_webdriver
driver = webdriver.Chrome(ez_webdriver.chrome())
# 其它浏览器同理,仅需更改 ez_webdriver 后的 chrome() 改成对应浏览器即可
# selenium 4
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
import ez_webdriver # 导入驱动管理模块
# 将 ez_webdriver.chrome() 传递给 server 参数即可
driver = webdriver.Chrome(service=Service(ez_webdriver.chrome()))
# selenium 3
from selenium import webdriver
import ez_webdriver # 导入驱动管理模块
# selenium 3 -->直接填入即可
driver = webdriver.Chrome(ez_webdriver.chrome())
# selenium 4
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
import ez_webdriver # 导入驱动管理模块
# 将 ez_webdriver.firefox() 传递给 server 参数即可
driver = webdriver.Chrome(service=Service(ez_webdriver.firefox()))
# selenium 3
from selenium import webdriver
import ez_webdriver # 导入驱动管理模块
# selenium 3 -->直接填入即可
driver = webdriver.Chrome(ez_webdriver.firefox())
# selenium 4
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
import ez_webdriver # 导入驱动管理模块
# 将 ez_webdriver.edge() 传递给 server 参数即可
driver = webdriver.Chrome(service=Service(ez_webdriver.edge()))
# selenium 3
from selenium import webdriver
import ez_webdriver # 导入驱动管理模块
# selenium 3 -->直接填入即可
driver = webdriver.Chrome(ez_webdriver.edge())
# selenium 4
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
import ez_webdriver # 导入驱动管理模块
# 将 ez_webdriver.ie() 传递给 server 参数即可
driver = webdriver.Chrome(service=Service(ez_webdriver.ie()))
# selenium 3
from selenium import webdriver
import ez_webdriver # 导入驱动管理模块
# selenium 3 -->直接填入即可
driver = webdriver.Chrome(ez_webdriver.ie())
- chrome()
返回Path对象或Fase,自动获取浏览器驱动
- firfox()
返回Path对象或Fase,自动获取浏览器驱动
- edge()
返回Path对象或Fase,自动获取浏览器驱动
- ie()
返回Path对象或Fase,自动获取浏览器驱动
- clear_cache()
适用于浏览器驱动文件损坏的情况,将清除下载的驱动文件,估计不会被用上
chrome()
firfox()
edge()
ie()
均有如下参数
version: 三种参数 auto(匹配当前版本,默认) latest(最新版本) x.x.x(指定版本)
path: 可目录(指定放置驱动文件的目录),可文件(指定驱动文件的路径,用文件就是多此一举)
name: 下载的驱动文件名称(下载的文件名,除非镜像源的文件改名了,否则不要改动)
os_type: 默认自动检测,指定只能三选一 'linux'|'win'|'mac'
默认值:
chrome(version="auto", path=None, name="chromedriver", os_type=None)
此模块参考了 webdriver_manager 的设计思路,
添加了国内镜像,每个浏览器均有至少两个下载镜像可用 弃用了缓存过期时间(cache_valid_range)的设定,改为了每次执行时判断是否有旧版本驱动,只保留一个冗余旧版本 弃用类,改用函数的形式,导入模块时不用那么复杂 获取浏览器版本时,优先用注册表,powershell备用(用的它的代码),占用少,响应更快