你如何从python selenium firefox webdriver获得geckodriver版本?

时间:2018-05-15 21:21:49

标签: python selenium selenium-firefoxdriver

我正在尝试编写一些防御性代码,以防止有人在安装旧版geckodriver时执行脚本。我不能为我的生活似乎从webdriver对象获得geckodriver版本。

我找到的最近的是driver.capabilities,其中包含firefox浏览器版本,但不包含geckodriver版本。

from selenium import webdriver
driver = webdriver.Firefox()
pprint(driver.capabilities)

输出:

{'acceptInsecureCerts': True,
 'browserName': 'firefox',
 'browserVersion': '60.0',
 'moz:accessibilityChecks': False,
 'moz:headless': False,
 'moz:processID': 18584,
 'moz:profile': '/var/folders/qz/0dsxssjd1133p_y44qbdszn00000gp/T/rust_mozprofile.GsKFWZ9kFgMT',
 'moz:useNonSpecCompliantPointerOrigin': False,
 'moz:webdriverClick': True,
 'pageLoadStrategy': 'normal',
 'platformName': 'darwin',
 'platformVersion': '17.5.0',
 'rotatable': False,
 'timeouts': {'implicit': 0, 'pageLoad': 300000, 'script': 30000}}

浏览器版本和geckodriver版本是否可以直接链接?如果没有,我如何从python中检查geckodriver版本?

2 个答案:

答案 0 :(得分:3)

python绑定中没有方法来获取geckodriver版本,你必须自己实现它,我的第一个选项是subprocess

# Mind the encoding, it must match your system's
output = subprocess.run(['geckodriver', '-V'], stdout=subprocess.PIPE, encoding='utf-8')
version = output.stdout.splitlines()[0].split()[-1]

答案 1 :(得分:0)

似乎moz:geckodriverVersion已在2018年末某个时候添加到功能中。

driverversion = driver.capabilities['moz:geckodriverVersion']
browserversion = driver.capabilities['browserVersion']