使用selenium自动化时,一个很烦的问题就是chrome会自动更新,然后chromedriver的版本就会不兼容,每次要查询版本下载解压很烦,因此开始寻找如何用脚本自动更新。
网上找到了一些脚本,但是感觉略显繁琐,因此我就自己修改了一下,逻辑很简洁:
- 通过注册表查询chrome版本号;
- 查询本地的chromedriver版本号;
- 查看两个版本号前三位是否一致,若不一致就到 http://npm.taobao.org/mirrors/chromedriver/ 查询当前chrome匹配的最新chromedriver版本号;
- 合成下载链接,最后下载并解压。
import os
import re
import winreg
import zipfile
import requests
base_url = 'http://npm.taobao.org/mirrors/chromedriver/'
version_re = re.compile(r'^[1-9]\d*\.\d*.\d*') # 匹配前3位版本号的正则表达式
def getChromeVersion():
"""通过注册表查询chrome版本"""
try:
key = winreg.OpenKey(winreg.HKEY_CURRENT_USER, 'Software\\Google\\Chrome\\BLBeacon')
value, t = winreg.QueryValueEx(key, 'version'