vlambda博客
学习文章列表

python根据浏览器版本自动获取对应的webdriver

最近使用selenium的时候,想着如果整一个自动更新的webdriver的方法岂不是要省事很多。然后就想到第一步,怎么获取浏览器的版本号呢?本着在哪里不会,就在哪里百度的原则,很快就找到了一个解决的办法,通过webdriver的方法可以直接获取到浏览器的版本号,下面是代码:

# selenium 获取chrome版本号
from selenium import webdriver
def get_versionbysele():
    driver=webdriver.Chrome()
    print(driver.desired_capabilities['browserVersion'])
    driver.quit()
    
get_versionbysele()
# 92.0.4515.131

啪的一下,就很快,瞬间就获取到了想到的信息。然鹅,一分钟不到,我就发现自己是个大聪明了。本来就是解决webdriver版本不匹配导致的无法启动浏览器的问题,我这还直接用webdriver获取,这不就是骑着驴找驴嘛。。。果断再次施展娴熟的百度技巧,一气解决了win mac双环境下获取软件版本号的问题。

win系统获取软件版本号
from win32com.client import Dispatch
path = "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe"
def get_chrome_version():
    parser = Dispatch('Scripting.FileSystemobject')
    version = parser.GetFileVersion(path)
    return version

print(get_chrome_version())
# 83.0.4103.116
# mac获取软件版本号
import os
def get_version():
    shell = '/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --version'
    res = os.popen(shell)
    print(res.read())
    res.close()
    
get_version()
# Google Chrome 92.0.4515.131 

那么现在获取版本的问题就解决了,有了版本号就可以通过版本号去下载的链接啦。直接上代码:

# 通过BeautifulSoup解析html页面
from bs4 import BeautifulSoup
import requests

# 对应系统版本的安装包后缀名
sys_list = ['chromedriver_linux64.zip','chromedriver_mac64.zip','chromedriver_mac64_m1.zip','chromedriver_win32.zip']

def get_download_url():
    url = "http://npm.taobao.org/mirrors/chromedriver/"
    res = requests.get(url)
    bs4_1 = BeautifulSoup(res.text,'html.parser')
    aa =bs4_1.find_all('a')
    version = '83.0.4103.116'
    tmp = version.split('.')[0:3]
    pattern_version = '.'.join(tmp)
    # print(pattern_version)
    # 83.0.4103
    for i in aa:
        b = i.get('href')
        if b:
            tmp = b.split('/')[-2]
            if tmp.startswith(pattern_version):
                # print(b)
                # /mirrors/chromedriver/83.0.4103.14/
                # /mirrors/chromedriver/83.0.4103.39/
                # 自行拼接需要下载的系统版本
                return url+b+sys_list[0]
print(get_download_url())
# http://npm.taobao.org/mirrors/chromedriver//mirrors/chromedriver/83.0.4103.14/chromedriver_linux64.zip

有了下载链接,我们就能完成后续的操作喽,那么今天的分享就到这里啦~