Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Python 3.5 - "Geckodriver executable needs to be in PATH"

I added geckodriver.exe into PATH as you can see on this image and i restarted my computer after. But the error still show up.

Here's my code :

from selenium import webdriver

driver = webdriver.Firefox()
driver.get('https://stackoverflow.com')

Do you have clues about what I did wrong ?

like image 217
Hobsido Avatar asked Sep 14 '25 20:09

Hobsido


2 Answers

There are three ways to resolve this error.

  1. Download the gecko driver and keep it in directory where your python test script is there.
  2. Set the environment variable "webdriver.gecko.driver" with driver path as value. os.environ["webdriver.gecko.driver"]="c:\geckodriver.exe"

  3. Pass executable path to the constructor like driver = WebDriver.Firefox("path of executable")

like image 51
Murthi Avatar answered Sep 16 '25 11:09

Murthi


I don't see any significant error in your code block. While working with Selenium 3.4.3, geckodriver v0.17.0, Mozilla Firefox 53.0 with Python 3.6.1 you can consider downloading the geckodriver and save it anywhere in your machine and configuring the absolute path of the geckodriver through executable_path.

It is to be noted that the current Selenium-Python binding is unstable with geckodriver and looks to be Architecture specific. You can find the github discussion and merge here. So you may additionally need to pass the absolute path of the firefox binary as firefox_binary argument while initializing the webdriver

Here is your own code block which executes well at my end:

from selenium import webdriver
from selenium.webdriver.firefox.firefox_binary import FirefoxBinary

binary = FirefoxBinary('C:\\Program Files\\Mozilla Firefox\\firefox.exe')
driver = webdriver.Firefox(firefox_binary=binary, executable_path="C:\\Utility\\BrowserDrivers\\geckodriver.exe")
driver.get('https://stackoverflow.com')
like image 34
undetected Selenium Avatar answered Sep 16 '25 11:09

undetected Selenium