4

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:\Python27\lib\site-packages\selenium-3.0.0b2-py2.7.egg\selenium\webdriver\firefox\webdriver.py", line 65, in __init__ self.service.start() File "C:\Python27\lib\site-packages\selenium-3.0.0b2-py2.7.egg\selenium\webdriver\common\service.py", line 86, in start self.assert_process_still_running() File "C:\Python27\lib\site-packages\selenium-3.0.0b2-py2.7.egg\selenium\webdriver\common\service.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

3 Answers 3

6

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 Firefox\firefox.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 ...!

Sign up to request clarification or add additional context in comments.

1 Comment

Good answer, bear in mind that when you give the executable path of the geckodriver you need to include the entire exe address. See this answer: stackoverflow.com/questions/41919932/…
1

I fixed this, I deleted the egg that was installed and reinstalled selenium, it works perfectly now.

2 Comments

Could you elaborate what you mean by egg, because i am having the same problem.
0

I had this problem on MacOS Big Sur and it's a security issue. To resolve it, go to your system preferences -> Security & Privacy and at the bottom it will complain about geckodriver. You need to click "Allow Anyway."

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.