Search code examples
pythonseleniumfirefoxselenium-webdrivergeckodriver

"WebDriverException: 'geckodriver' executable needs to be in PATH" error while 'driver = webdriver.Firefox()' through Selenium


To the experts out there, I ran the following code in Python using Spyder (on Mac):

>from selenium import webdriver
>from selenium.webdriver.common.keys import Keys
>driver = webdriver.Firefox()

and I get the following errors:

>Traceback (most recent call last):
>
>  File "<ipython-input-4-fd567e24185f>", line 1, in <module>
>    driver = webdriver.Firefox()
>
>  File "/Users/liminfang/anaconda3/lib/python3.6/site->packages/selenium/webdriver/firefox/webdriver.py", line 160, in __init__
>    self.service.start()
>
>  File "/Users/liminfang/anaconda3/lib/python3.6/site->packages/selenium/webdriver/common/service.py", line 83, in start
>    os.path.basename(self.path), self.start_error_message)
>
>WebDriverException: 'geckodriver' executable needs to be in PATH. 

Note that I have already added 'geckodriver' executable to the PATH by executing

>export PATH=$PATH:/Users/liminfang/anaconda3/geckodriver 

in Terminal. And I restarted my computer, but the error persists. Anyone know what's going on here? Please help. Thank you!


Solution

  • Put geckodriver.exe in the script folder and then call webdriver.Firefox with:

    driver = webdriver.Firefox(firefox_binary=binary, firefox_profile=fp, executable_path='geckodriver.exe')
    

    I've 52.0.2 (64 bit) and Geckodriver 0.15.0-win64 and it's working!