4

I recently downloaded selenium and tried to run this script:

 from selenium import webdriver
 driver = webdriver.Firefox()

but I get this error:

Traceback (most recent call last):
  File "<pyshell#3>", line 1, in <module>
    driver = webdriver.Firefox()
  File "C:\Heights\PortableApps\PortablePython2.7.6.1\App\lib\site-packages\selenium-3.0.1-py2.7.egg\selenium\webdriver\firefox\webdriver.py", line 145, in __init__
    keep_alive=True)
  File "C:\Heights\PortableApps\PortablePython2.7.6.1\App\lib\site-packages\selenium-3.0.1-py2.7.egg\selenium\webdriver\remote\webdriver.py", line 92, in __init__
    self.start_session(desired_capabilities, browser_profile)
  File "C:\Heights\PortableApps\PortablePython2.7.6.1\App\lib\site-packages\selenium-3.0.1-py2.7.egg\selenium\webdriver\remote\webdriver.py", line 179, in start_session
    response = self.execute(Command.NEW_SESSION, capabilities)
  File "C:\Heights\PortableApps\PortablePython2.7.6.1\App\lib\site-packages\selenium-3.0.1-py2.7.egg\selenium\webdriver\remote\webdriver.py", line 236, in execute
    self.error_handler.check_response(response)
  File "C:\Heights\PortableApps\PortablePython2.7.6.1\App\lib\site-packages\selenium-3.0.1-py2.7.egg\selenium\webdriver\remote\errorhandler.py", line 192, in check_response
    raise exception_class(message, screen, stacktrace)
WebDriverException: Message: Expected browser binary location, but unable to find binary in default location, no 'firefox_binary' capability provided, and no binary flag set on the command line

Oh by the way this opens my geckodriver.exe before it prints the error

Paul Floyd
  • 5,530
  • 5
  • 29
  • 43
omersk
  • 109
  • 1
  • 10
  • And do you have Firefox installed? Have you tried to tell Selenium where it is? If you're using portable apps they may be placing things in unconventional places, which will break stuff. – jonrsharpe Oct 15 '16 at 10:13
  • thank for the comment , i have fire fox installed , how i tell selenium where it is ? and i use portable apps , you think i should delete it and download python without it ? – omersk Oct 15 '16 at 10:29
  • which version of Firefox you are using? – Piyush Oct 17 '16 at 04:39

1 Answers1

7

I got around this by manually setting the binary location as per the following answer:

https://stackoverflow.com/a/25715497

Remember to set your binary to the actual location of the firefox binary on your computer

eg:

from selenium.webdriver.firefox.firefox_binary import FirefoxBinary

binary = FirefoxBinary(r'C:\Program Files (x86)\Mozilla Firefox\firefox.exe')
self.browser = webdriver.Firefox(firefox_binary=binary)

(note: the 'r' before the first quote in the file path string makes python see the string as 'raw' text, and therefore you don't need to escape characters like '\' - you can just put in the path as it actually is)

Community
  • 1
  • 1
buzzzz
  • 81
  • 3