Как получить версию geckodriver от веб-драйвера python selenium firefox? - PullRequest
0 голосов
/ 16 мая 2018

Я пытаюсь написать какой-нибудь защитный код, чтобы кто-то не мог выполнить скрипт, если у него установлена ​​более старая версия geckodriver.Кажется, я не могу получить версию geckodriver от объекта webdriver.

Самое близкое, что я нашел, это 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 связаны напрямую?если нет, то как я могу проверить версию geckodriver из python?

Ответы [ 2 ]

0 голосов
/ 16 июля 2019

Похоже, что moz:geckodriverVersion был добавлен к возможностям где-то в конце 2018 года.

driverversion = driver.capabilities['moz:geckodriverVersion']
browserversion = driver.capabilities['browserVersion']
0 голосов
/ 16 мая 2018

В привязках 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]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...