Following is my environment:
- OS : Windows 10 - 64 (Home edition)
- Browser : Firefox 47.0.1 (32 bit)
- Python : 2.7.10.12 (64 bit)
- selenium : 3.0.1
- Geckodriver: geckodriver-v0.11.1-win64.zip
Firefox is installed in C:\Program Files (x86)\Mozilla Firefox
.
geckodriver.exe is placed in C:\Python27\Scripts
location.
Following is my python code:
from selenium import webdriver
driver = webdriver.Firefox()
driver.get("http://www.python.org")
Which gives the following error:
Traceback (most recent call last):
File "examples1.py", line 5, in <module>
driver = webdriver.Firefox()
File "C:\Python27\lib\site-packages\selenium\webdriver\firefox\webdriver.py", line 152, in __init__
keep_alive=True)
File "C:\Python27\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 92, in __init__
self.start_session(desired_capabilities, browser_profile)
File "C:\Python27\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 179, in start_session
response = self.execute(Command.NEW_SESSION, capabilities)
File "C:\Python27\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 236, in execute
self.error_handler.check_response(response)
File "C:\Python27\lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 192, in check_response
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.WebDriverException: Message: Expected browser binary location, but unable to find binary in default location, no 'moz:firefoxOptions.binary' capability provided, and no binary flag set on the command line
My question is that though firefox is installed in default location, webdriver could not be able to find it and throws the error.
Note: when I explicitly specify the Firefox binary location as follows, it is working.
binary = FirefoxBinary(r'C:\Program Files (x86)\Mozilla Firefox\firefox.exe')
driver = webdriver.Firefox(firefox_binary=binary)