简体   繁体   中英

Selenium install Marionette webdriver

I have this issue with firefox version 47 https://github.com/seleniumhq/selenium/issues/2110

So, i have tried to add Marionette web driver to fix it: https://developer.mozilla.org/en-US/docs/Mozilla/QA/Marionette/WebDriver

But:

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'

returns error:

selenium.common.exceptions.WebDriverException: Message: 'wires' executable needs to be in PATH.

Exception AttributeError: "'Service' object has no attribute 'process'" in > ignored

selenium==2.53.5

the firefox binary capability you're setting points to the firefox binary, not the marionette driver binary. You need to add /Users/myproject/geckodriver-0.8.0-OSX to your path as follows:

Open a terminal and run this command

export PATH=$PATH:/Users/myproject/geckodriver-0.8.0-OSX

I ran into this issue and can confirm that firefox_capabilities['binary'] should point to the Firefox binary, not to GeckoDriver. The Python example in the Mozilla WebDriver documentation has been clarified on this topic.

In addition to the other two answers, you probably don't want to change the PATH system wide since you need it only when running the tests. A way to have the right PATH only when you need it is to set it in code:

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

A simpler workaround would be to simple move the geckodriver binary to the directory you already have in your path:

mv geckodriver /usr/local/bin

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM