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

Ответ 3

В дополнение к двум другим ответам, вы, вероятно, не хотите изменять системную ширину PATH, поскольку она вам нужна только при выполнении тестов. Способ иметь право PATH только тогда, когда вам нужно это установить его в код:

os.environ["PATH"] += os.pathsep + 'path/to/dir/containing/geckodriver/'

Простым обходным решением было бы просто переместить двоичный файл geckodriver в каталог, который у вас уже есть в вашем пути:

mv geckodriver /usr/local/bin