[Solved] Unable to obtain chromedriver.exe using Selenium Manager – Python

by
Ali Hasan
llama-cpp-python selenium-chromedriver selenium-webdriver

The Problem:

When attempting to execute Selenium web automation with Python, the program encounters an error that expresses an inability to obtain the chromedriver.exe executable using the Selenium Manager. The error message directs the user to an unsuccessful command execution and provides line and character information. This error prevents the program from successfully launching a headless Chrome browser and performing web automation tasks. The code snippet provided attempts to launch a headless Chrome browser and save a screenshot, but the error interrupts this process.

The Solutions:

Solution 1: Manually Identifying the chromedriver.exe Path

To resolve the issue of obtaining chromedriver.exe using Selenium Manager, you can manually specify the path to the executable. Here’s how:

  1. Identify the path to chromedriver.exe on your system. You can do this by searching for the file in your file explorer or using a command like where chromedriver.

  2. In your code, use the Service class to specify the path to chromedriver.exe. This can be done as follows:

    from selenium import webdriver
    from selenium.webdriver.chrome.service import Service
    
    # Add service
    service = Service(executable_path="/path/to/chromedriver.exe")
    options = webdriver.ChromeOptions()
    driver = webdriver.Chrome(service=service, options=options)
    

Solution 3: Using Selenium Driver Manager

It appears that you’re attempting to use chromedriver.exe on a Linux system, while this file extension is specific to Windows. For Mac and Linux systems, the correct file name is simply chromedriver.

Since Selenium version 4.10.0, the Driver Manager is now included as part of the package, making it easier to obtain the correct chromedriver for your system:

from selenium import webdriver

options = webdriver.ChromeOptions()
options.add_argument("--headless=new")

driver = webdriver.Chrome(options=options)
# ...
driver.quit()

By using the Driver Manager, you can avoid having to explicitly specify the path to the chromedriver executable, ensuring compatibility with your operating system.

Q&A

How do I resolve error for Unable to obtain chromedriver.exe using Selenium Manager

Find the chromedriver path and use Service(executable_path="real_path") instead of old syntax.

What’s the absolute path of the ChromeDriver

You don’t need to specify absolute path for executable_path.

The extension of file name for Linux/Mac

Linux/Mac uses chromedriver without extension.

Video Explanation:

The following video, titled "Selenium-Manager - Python Update || No Need to use ...", provides additional insights and in-depth exploration related to the topics discussed in this post.

Play video

Selenium-Manager - Python Update || No Need to use ChromeDriver/GeckoDriver exe || Selenium 4.6. ... HOW TO FIX SELENIUM CHROME WEB DRIVER ERROR | ...