Chrome Driver not functioning preventing use of Selenium

Posted on

Problem :

I am trying to run a script with selenium using chromedriver as the driver. I receive the following error information:

Traceback (most recent call last):
  File "C:UserssamdeAppDataLocalProgramsPythonPython37-32libsite-packagesseleniumwebdrivercommonservice.py", line 76, in start
    stdin=PIPE)
  File "C:UserssamdeAppDataLocalProgramsPythonPython37-32libsubprocess.py", line 775, in __init__
    restore_signals, start_new_session)
  File "C:UserssamdeAppDataLocalProgramsPythonPython37-32libsubprocess.py", line 1178, 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 "scrape.py", line 10, in <module>
    options= chrome_options)
  File "C:UserssamdeAppDataLocalProgramsPythonPython37-32libsite-packagesseleniumwebdriverchromewebdriver.py", line 73, in __init__
    self.service.start()
  File "C:UserssamdeAppDataLocalProgramsPythonPython37-32libsite-packagesseleniumwebdrivercommonservice.py", line 83, 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

I think this maybe a path issue, but am unsure how to fix it. I added the chromedriver location to PATH in “Environment Variables” when I installed the chrome driver. Its location/ path is : “C:Web_Drivers”.

When I call chromedriver in powershell, I receive the following message:

Starting ChromeDriver 76.0.3809.126 (d80a294506b4c9d18015e755cee48f953ddc3f2f-refs/branch-heads/3809@{#1024}) on port 9515
Only local connections are allowed.
Please protect ports used by ChromeDriver and related test frameworks to prevent access by malicious code.

Solution :

Basic Troubleshooting

  • You may want to try using a regular command prompt (rather than PowerShell) and see if that helps to resolve the issue.

  • Another consideration may be if you placed the path to chromedriver.exe in your User path rather than your System path.

  • You should log out and log in after updating your path variables. In some cases, you may need to restart the PC as well.

Calling ChromeDriver

Assuming ChromeDriver resides in your Windows path, use either chromedriver or chromedriver.exe in your script e.g.:

ex. without executable_path

driver = webdriver.Chrome('chromedriver')

ex. with executable_path

driver = webdriver.Chrome(options=options, executable_path='chromedriver')

ex. with executable_path and a variable

chromedriver_path = 'chromedriver'
driver = webdriver.Chrome(options=options, executable_path=chromedriver_path)

Other Options

There are also several options for specifying the path to ChromeDriver directly:

  • Assuming chromedriver.exe is in the same folder as your script:

    driver = webdriver.Chrome()
    
  • Specifying the full path to chromedriver.exe without executable_path:

    driver = webdriver.Chrome('C:/path/to/chromedriver.exe')
    
  • Specifying the full path to chromedriver.exe with executable_path:

    driver = webdriver.Chrome(options=options, executable_path='C:/path/to/chromedriver.exe')
    
  • Specifying the full path to chromedriver.exe with executable_path and a variable:

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

Be aware that while you can also use C:pathtochromedriver.exe and C:\path\to\chromedriver.exe, some ChromiumChromeDriver forks may not accept C:pathtochromedriver.exe. In this instance, try using either \ or / instead.

Leave a Reply

Your email address will not be published. Required fields are marked *