# !/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
===========================
@Time : 2021/4/20 10:28
@Author : 阿登
@Site : adeng
@File : update_chromewebdriver.py
@Software: PyCharm
============================
"""
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位版本号的正则表达式
ChromeWebdrivrPath = "."
def getChromeVersion():
"""通过注册表查询chrome版本"""
try:
key = winreg.OpenKey(winreg.HKEY_CURRENT_USER, 'Software\\Google\\Chrome\\BLBeacon')
value, t = winreg.QueryValueEx(key, 'version')
return version_re.findall(value)[0] # 返回前3位版本号
except WindowsError as e:
print("没有安装chrome浏览器")
# 没有安装chrome浏览器
return "1.1.1"
def getChromeDriverVersion():
"""查询Chromedriver版本"""
outstd2 = os.popen('chromedriver --version').read()
try:
version = outstd2.split(' ')[1]
version = ".".join(version.split(".")[:-1])
return version
except Exception as e:
return "0.0.0"
def getLatestChromeDriver(version):
# 获取该chrome版本的最新driver版本号
url = f"{base_url}LATEST_RELEASE_{version}"
latest_version = requests.get(url).text
print(f"与当前chrome匹配的最新chromedriver版本为: {latest_version}")
# 下载chromedriver
print("开始下载chromedriver...")
download_url = f"{base_url}{latest_version}/chromedriver_win32.zip"
file = requests.get(download_url)
with open("chromedriver.zip", 'wb') as zip_file: # 保存文件到脚本所在目录
zip_file.write(file.content)
print("下载完成.")
# 解压
f = zipfile.ZipFile("chromedriver.zip", 'r')
for file in f.namelist():
#f.extract(file)
'''解压Chromedriver压缩包到指定目录'''
f.extract(file, ChromeWebdrivrPath) # ChromeWebdrivrPath指定的是要替换的webderiver地址
print("解压完成.")
def checkChromeDriverUpdate():
chrome_version = getChromeVersion()
print(f'当前chrome版本: {chrome_version}')
driver_version = getChromeDriverVersion()
print(f'当前chromedriver版本: {driver_version}')
if chrome_version == driver_version:
print("版本兼容,无需更新.")
return
print("chromedriver版本与chrome浏览器不兼容,更新中>>>")
try:
getLatestChromeDriver(chrome_version)
print("chromedriver更新成功!")
except requests.exceptions.Timeout:
print("chromedriver下载失败,请检查网络后重试!")
except Exception as e:
print(f"chromedriver未知原因更新失败: {e}")
if __name__ == "__main__":
checkChromeDriverUpdate()
# print(getChromeVersion())
# print(getChromeDriverVersion())
# getLatestChromeDriver("89.0.4389")
windows自动化更新webdriver
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 点击这里学习更多自动化测试知识 ->>>查看详情[http://github.crmeb.net/u/fei] 什...
- 一、为什么学习自动化测试 减少人力成本,完成手工不能完成的工作,提高测试效率,完成大量重复性工作 是否适合做...
- 0.前言 本教程适用于: App开发工程师用于App自测,减少重复的体力工作 测试开发工程师App自动化测试,便于...
- 前言:自动化测试是当下软件测试界的绝对热门之一,本篇文章写给那些刚接触或者想要接触自动化测试的同学,为大家提供一条...