Skip to main content

简单,快速的获取浏览器驱动,优先使用国内镜像,对标webdriver_manager模块(Quickly obtain the browser driver for China's Network Environment)

Project description

ez-webdriver

一个下载管理浏览器驱动的python库, 优先使用国内镜像源, 单文件少依赖,调用简单,复制即用,可作为 webdriver_manager 库的国内替代

  • 获取驱动时,优先用国内镜像源,下载更快
  • 下载的驱动永久保存,每次执行时判断旧版本数量,只保留一个旧版本驱动的冗余
  • 代码精简,单文件,只需复制 ez_webdriver.py 文件到自己项目即可使用
  • 修改方便,如果有新增镜像源,仅需写一个处理镜像源链接的函数即可

支持的浏览器/For now support:

谷歌浏览器/ChromeDriver 火狐浏览器/GeckoDriver Edge浏览器/EdgeChromiumDriver IE浏览器/IEDriver

用法/Usage:

谷歌浏览器 火狐浏览器 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() 改成对应浏览器即可

示例

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())

Firfox

# 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())

Edge

# 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())

IE

# 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备用(用的它的代码),占用少,响应更快

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ez_webdriver-1.1.tar.gz (1.6 MB view hashes)

Uploaded Source

Built Distribution

ez_webdriver-1.1-py3-none-any.whl (12.7 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page