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)
 
     
    