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

0
0

when i run my script , i got this error

Traceback (most recent call last):
File "C:\Users\ishaq\AppData\Local\Programs\Python\Python36\lib\site-packages\selenium\webdriver\common\service.py", line 74, in start
stdout
=self.log_file, stderr=self.log_file)
File "C:\Users\ishaq\AppData\Local\Programs\Python\Python36\lib\subprocess.py", line 707, in __init__
restore_signals
, start_new_session)
File "C:\Users\ishaq\AppData\Local\Programs\Python\Python36\lib\subprocess.py", line 992, in _execute_child
startupinfo
)
FileNotFoundError: [WinError 2] The system cannot find the file specified
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "C:/Users/ishaq/AppData/Local/Programs/Python/Python36/headless.py", line 9, in <module>
driver
= webdriver.Chrome(executable_path=os.path.abspath("chromedriver"), chrome_options=chrome_options)
File "C:\Users\ishaq\AppData\Local\Programs\Python\Python36\lib\site-packages\selenium\webdriver\chrome\webdriver.py", line 62, in __init__
self
.service.start()
File "C:\Users\ishaq\AppData\Local\Programs\Python\Python36\lib\site-packages\selenium\webdriver\common\service.py", line 81, in start
os
.path.basename(self.path), self.start_error_message)
selenium
.common.exceptions.WebDriverException: Message: 'chromedriver' executable needs to be in PATH. Please see https://sites.google.com/a/chromium.org/chromedriver/home

here is my script

import os  
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.chrome.options import Options
chrome_options
= Options()
chrome_options
.add_argument("--headless")
chrome_options
.binary_location =
r
'C:\Users\ishaq\Desktop\chrome\chromedriver.exe'
driver
= webdriver.Chrome(executable_path=os.path.abspath("chromedriver"),
chrome_options
=chrome_options)
driver
.get("http://www.duo.com")
magnifying_glass
= driver.find_element_by_id("js-open-icon")
if magnifying_glass.is_displayed():
magnifying_glass
.click()
else:
menu_button
= driver.find_element_by_css_selector(".menu-trigger.local")
menu_button
.click()
search_field
= driver.find_element_by_id("site-search")
search_field
.clear()
search_field
.send_keys("Olabode")
search_field
.send_keys(Keys.RETURN)
assert "Looking Back at Android Security in 2016" in driver.page_source
driver
.close()
  • You must to post comments
0
0

If we analyze the logs it seems the main issue is with in start os.path.basename(self.path) and subsequent error message selenium.common.exceptions.WebDriverException: Message: 'chromedriver' executable needs to be in PATH.

So it’s clear from the error that the Python client was unable to locate the chromedriver binary.

You have to take care of a couple of points here:

  1. chrome_options.binary_location : The parameter configures the chrome.exe not the chromedriver.exe
  2. os.path.abspath("chromedriver") will pick up the file path of chromedriver but won’t append chromedriver.exe at the end.
  3. Here is the sample code on my Windows 8 system to start Chrome in Headless Mode:

    from selenium import webdriver  
    from selenium.webdriver.chrome.options import Options
    chrome_options
    = Options()
    chrome_options
    .add_argument("--headless")
    driver
    = webdriver.Chrome(chrome_options=chrome_options, executable_path=r'C:\Utility\BrowserDrivers\chromedriver.exe')
    driver
    .get("http://www.duo.com")
    print("Chrome Browser Initialized in Headless Mode")
    driver
    .quit()
    print("Driver Exited")
  • You must to post comments
Showing 1 result
Your Answer
Post as a guest by filling out the fields below or if you already have an account.
Name*
E-mail*
Website