selenium.common.exceptions.WebDriverException: Message: 'chromedriver' executable needs to be in PATH error with Headless Chrome
15,475
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:
chrome_options.binary_location
: The parameter configures thechrome.exe
not thechromedriver.exe
os.path.abspath("chromedriver")
will pick up the file path ofchromedriver
but won't appendchromedriver.exe
at the end.Here is the sample code on my
Windows 8
system to startChrome
inHeadless 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")
Related videos on Youtube
Author by
Ishaq Ashraf
Full Stack developer. Hands-on product development experience with Silicon Valley startups and international companies.
Updated on June 04, 2022Comments
-
Ishaq Ashraf about 2 years
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()
-
JeffC almost 7 yearsPossible duplicate of Error message: "'chromedriver' executable needs to be available in the path"
-
JeffC almost 7 yearsBefore posting a question you should spend some time reading the error messages and trying to understand what the errors are. Then you should spend some time googling the errors so you can better understand what the errors mean and how people have solved them. This is a common error and there's already a solution if you'd spent the time to look for it.
-
Ishaq Ashraf almost 7 years@JeffC actually i was confused in os.path and binary.location . i search alot about it and didnt find a solution thats why i posted this question.
-
-
undetected Selenium almost 7 yearsAlternatively, you can also try
Mozilla Firefox in Headless Mode
-
Ishaq Ashraf almost 7 yearsmy script is working great in local, but i want to run my script remotely , i dont want to run my machine all day