Selenium - Chromedriver Executable Needs to Be in Path

Error message: 'chromedriver' executable needs to be available in the path

You can test if it actually is in the PATH, if you open a cmd and type in chromedriver (assuming your chromedriver executable is still named like this) and hit Enter. If Starting ChromeDriver 2.15.322448 is appearing, the PATH is set appropriately and there is something else going wrong.

Alternatively you can use a direct path to the chromedriver like this:

 driver = webdriver.Chrome('/path/to/chromedriver') 

So in your specific case:

 driver = webdriver.Chrome("C:/Users/michael/Downloads/chromedriver_win32/chromedriver.exe")

selenium - chromedriver executable needs to be in PATH

You can download ChromeDriver here:
https://sites.google.com/chromium.org/driver/

Then you have multiple options:

  • add it to your system path

  • put it in the same directory as your python script

  • specify the location directly via executable_path

     driver = webdriver.Chrome(executable_path='C:/path/to/chromedriver.exe')

traceback: Message: 'chromedriver' executable needs to be in PATH

        os.environ['PATH'] += self.driver_path

This is not the right way to set the environment variable. Actually webdriver allows you to specific the path of chromedriver binary, so you don't need to make use of environment variable.

CHROMEDRIVER_PATH = r"C:\Users\Narsil\dev\seleniumDrivers\chromedriver.exe")

class Booking(webdriver.Chrome):

def __init__(self, driver_path=CHROMEDRIVER_PATH):
self.driver_path = driver_path
super(Booking, self).__init__(executable_path=driver_path)

Besides, IMO composition is more suitable than inheritance to build page object in most cases. Here is the sample.

class BasePageObject:
def __init__(self, driver_path):
self.driver = webdriver.Chrome(executable_path=driver_path)

class Booking(BasePageObject):
def land_page(self):
self.driver.get(const.BASE_URL)

WebDriverException: Message: 'chromedriver' executable needs to be in PATH while setting UserAgent through Selenium Chromedriver python

This error message...

selenium.common.exceptions.WebDriverException: Message: 'chromedriver' executable needs to be in PATH

...implies that the ChromeDriver was not found within the locations specified within PATH variable within Environment Variables.

Solution

You need to pass the Key executable_path along with the Value referring to the absolute path of the ChromeDriver along with the ChromeOptions object as an argument while initializing the WebDriver and WebBrowser as follows :

from selenium import webdriver

options = webdriver.ChromeOptions()
options.add_argument('user-agent = Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2228.0 Safari/537.36')
driver = webdriver.Chrome(chrome_options=options, executable_path=r'C:\Users\Desktop\chromedriver_win32\chromedriver.exe')
driver.get('https://www.google.co.in')


Related Topics



Leave a reply



Submit