Selenium установить Marionette webdriver
У меня есть эта проблема с firefox версии 47 https://github.com/seleniumhq/selenium/issues/2110
Итак, я попытался добавить веб-драйвер Marionette, чтобы исправить его: https://developer.mozilla.org/en-US/docs/Mozilla/QA/Marionette/WebDriver
Но:
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
firefox_capabilities = DesiredCapabilities.FIREFOX
firefox_capabilities['marionette'] = True
firefox_capabilities['binary'] = '/Users/myproject/geckodriver-0.8.0-OSX'
возвращает ошибку:
selenium.common.exceptions.WebDriverException: Сообщение: "проводы" исполняемый файл должен находиться в PATH.
Исключение AttributeError: "Объект" Сервис "не имеет атрибута 'process' 'in > игнорируется
селен == 2.53.5
Ответы
Ответ 1
бинарная способность firefox, которую вы устанавливаете, указывает на двоичный код firefox, а не на двоичный код драйвера марионетки. Вам нужно добавить /Users/myproject/geckodriver-0.8.0-OSX
к вашему пути следующим образом:
Откройте терминал и запустите эту команду
export PATH=$PATH:/Users/myproject/geckodriver-0.8.0-OSX
Ответ 2
I столкнулся с этой проблемой и может подтвердить, что firefox_capabilities['binary']
должен указывать на двоичный код Firefox, а не на GeckoDriver. В этом разделе разъяснен пример Python в документации Mozilla WebDriver.
Ответ 3
В дополнение к двум другим ответам, вы, вероятно, не хотите изменять системную ширину PATH
, поскольку она вам нужна только при выполнении тестов. Способ иметь право PATH
только тогда, когда вам нужно это установить его в код:
os.environ["PATH"] += os.pathsep + 'path/to/dir/containing/geckodriver/'
Простым обходным решением было бы просто переместить двоичный файл geckodriver
в каталог, который у вас уже есть в вашем пути:
mv geckodriver /usr/local/bin