Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
1.5k views
in Technique[技术] by (71.8m points)

python - Selenium Firefox webdriver results in error: Service geckodriver unexpectedly exited. Status code was: 2

I'm writing a program that will search a website for specific entries inside of articles, I'm using selenium webdriver for Python.

While attempting to connect to the site I get this exception:

Traceback (most 
recent call last):
  File "search.py", line 26, in <module>
    test.search_for_keywords()
  File "search.py", line 13, in search_for_keywords
    browser = webdriver.Firefox()
  File "C:Python27libsite-packagesselenium-3.0.0b2-py2.7.eggseleniumwebdriverfirefoxwebdriver.py", line 65, in __init__
    self.service.start()
  File "C:Python27libsite-packagesselenium-3.0.0b2-py2.7.eggseleniumwebdrivercommonservice.py", line 86, in start
    self.assert_process_still_running()
  File "C:Python27libsite-packagesselenium-3.0.0b2-py2.7.eggseleniumwebdrivercommonservice.py", line 99, in assert_process_still_running
    % (self.path, return_code)
selenium.common.exceptions.WebDriverException: Message: Service geckodriver unexpectedly exited. Status code was: 2

It's saying that the webdriver unexpectedly exited. How can I fix this issue? I'm trying to connect with firefox version 48.0 with python version 2.7.12

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

Running python selenium tests in latest Firefox browser (Version 47 above)

“Marionette" or "Gecko Driver” is the future version of firefox driver. Firefox 47+ is not compatible with the driver used in Selenium 2.53, and Selenium 3+ will be using a new driver called "Marionette" or "Gecko Driver" (which isn't officially released yet).

Prerequisites:

? Mozilla firefox : Version 50.0.2(Version 47 above)

? Selenium : Version 3.0.2

? Geckodriver : Version 0.11.1

? Python : Version 2.7.3

Setup:

? Selenium : pip install –U selenium

? Geckodriver : Download the geckodriver from https://github.com/mozilla/geckodriver/releases , unzip the file and place it in a folder

? Set the ‘Path’ environment variable with geckodriver path

Sample script:

from selenium import webdriver
from selenium.webdriver.firefox.firefox_binary import FirefoxBinary
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities

#Provide the Firefox binary path

binary = FirefoxBinary(r'C:Program Files (x86)Mozilla Firefoxfirefox.exe’)

caps = DesiredCapabilities.FIREFOX.copy()

#Set ‘marionette’ browser to True

caps['marionette'] = True

#Launch the Firefox instance by specifying the geckodriver executable path

driver = webdriver.Firefox(firefox_binary=binary,capabilities=caps, executable_path`='D:/Installers/geckodriver-v0.11.1-win64/geckodriver')

You are done ...!


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...