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.

Exception AttributeError: «Объект 'Service' не имеет атрибута 'process'» в> игнорируется

селен == 2.53.5


person Arti    schedule 14.06.2016    source источник


Ответы (3)


двоичная возможность firefox, которую вы устанавливаете, указывает на двоичный файл firefox, а не на двоичный файл драйвера марионетки. Вам нужно добавить /Users/myproject/geckodriver-0.8.0-OSX к вашему пути следующим образом:

Откройте терминал и запустите эту команду

export PATH=$PATH:/Users/myproject/geckodriver-0.8.0-OSX
person Mobrockers    schedule 14.06.2016

Я столкнулся с этой проблемой и могу подтвердить, что firefox_capabilities['binary'] должен указывать на двоичный файл Firefox, а не на GeckoDriver. Уточнен пример Python в документации Mozilla WebDriver. по теме.

person Raymond Yee    schedule 15.06.2016
comment
firefox_capabilities = DesiredCapabilities.FIREFOX firefox_capabilities ['marionette'] = True firefox_capabilities ['binary'] = 'C: \ Program Files (x86) \ Mozilla Firefox \ firefox.exe' драйвер = webdriver.Firefox (возможности = firefox_capabilities) Привет, Рэймонд, У меня тоже проблемы. Я добавил то, что мне кажется, все исправления для проблем, перечисленных в статьях, однако я все еще получаю тот же исполняемый файл проводов, который должен быть в ошибке пути. - person user3042850; 16.06.2016
comment
Ошибка говорит о том, что исполняемый файл провода должен быть включен в путь, но у меня есть ссылка на то, где находится firefox exe в моей переменной пути к среде. - person user3042850; 16.06.2016
comment
@ user3042850 Если вы используете 64-битную Windows, попробуйте исполняемый файл по адресу sny.no/e/geckodriver1. exe вместо этого - большинство руководств указывают на 32-разрядный исполняемый файл (рекомендация взята из github.com/mozilla/geckodriver/issues/74#issuecomment-226927179) Также имейте в виду, что если вы работаете в Windows, вам нужно будет переименовать двоичный файл драйвера в wire.exe, а не на провода: - ) - person user3468054; 18.06.2016

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

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

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

mv geckodriver /usr/local/bin
person dsalaj    schedule 22.03.2017