webdriver_manager icon indicating copy to clipboard operation
webdriver_manager copied to clipboard

ChromeDriverManager picking Incorrect File (THIRD_PARTY_NOTICES.chromedriver) Instead of chromedriver.exe to install chromedriver for chrome version(127.0.6533.72)

Open Raghuramrwttw opened this issue 1 year ago • 8 comments

I am encountering an issue with the ChromeDriverManager when trying to install chromedriver for Chrome latest version 127.0.6533.72. The ChromeDriverManager is incorrectly picking up the THIRD_PARTY_NOTICES.chromedriver file instead of the chromedriver.exe file. This issue does not occur with older versions of Chrome.

Logs: 2024-07-26 11:00:17,198 - INFO - Driver downloading response is 200 2024-07-26 11:00:17,198 - INFO - Driver downloading response is 200 2024-07-26 11:00:17,276 - INFO - Get LATEST chromedriver version for google-chrome 2024-07-26 11:00:17,276 - INFO - Get LATEST chromedriver version for google-chrome 2024-07-26 11:00:17,276 - DEBUG - Starting new HTTPS connection (1): googlechromelabs.github.io:443 2024-07-26 11:00:17,276 - DEBUG - Starting new HTTPS connection (1): googlechromelabs.github.io:443 2024-07-26 11:00:17,307 - DEBUG - https://googlechromelabs.github.io:443 "GET /chrome-for-testing/latest-patch-versions-per-build.json HTTP/1.1" 200 6461 2024-07-26 11:00:17,307 - DEBUG - https://googlechromelabs.github.io:443 "GET /chrome-for-testing/latest-patch-versions-per-build.json HTTP/1.1" 200 6461 2024-07-26 11:00:17,635 - INFO - Driver has been saved in cache [C:\Users\deavalid.wdm\drivers\chromedriver\win64\127.0.6533.72] 2024-07-26 11:00:17,635 - INFO - Driver has been saved in cache [C:\Users\deavalid.wdm\drivers\chromedriver\win64\127.0.6533.72] 2024-07-26 11:00:17,651 - DEBUG - Skipping Selenium Manager; path to chrome driver specified in Service class: C:\Users\deavalid.wdm\drivers\chromedriver\win64\127.0.6533.72\chromedriver-win32/THIRD_PARTY_NOTICES.chromedriver 2024-07-26 11:00:17,651 - DEBUG - Skipping Selenium Manager; path to chrome driver specified in Service class: C:\Users\deavalid.wdm\drivers\chromedriver\win64\127.0.6533.72\chromedriver-win32/THIRD_PARTY_NOTICES.chromedriver 2024-07-26 11:00:17,682 - ERROR - An error occurred: cannot access local variable 'authdriver' where it is not associated with a value 2024-07-26 11:00:17,682 - ERROR - An error occurred: cannot access local variable 'authdriver' where it is not associated with a value 2024-07-26 11:00:17,776 - ERROR - Traceback (most recent call last): File "D:\automate\src\EmailUtil.py", line 143, in get_access_token_from_GraphAPI authdriver = webdriver.Chrome(service=Service(ChromeDriverManager().install()), options=options) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "D:\automate\v_311\Lib\site-packages\selenium\webdriver\chrome\webdriver.py", line 45, in init super().init( File "D:\automate\v_311\Lib\site-packages\selenium\webdriver\chromium\webdriver.py", line 55, in init self.service.start() File "D:\automate\v_311\Lib\site-packages\selenium\webdriver\common\service.py", line 98, in start self._start_process(self._path) File "D:\automate\v_311\Lib\site-packages\selenium\webdriver\common\service.py", line 208, in _start_process self.process = subprocess.Popen( ^^^^^^^^^^^^^^^^^ File "C:\Program Files\Python311\Lib\subprocess.py", line 1024, in init self._execute_child(args, executable, preexec_fn, close_fds, File "C:\Program Files\Python311\Lib\subprocess.py", line 1493, in _execute_child hp, ht, pid, tid = _winapi.CreateProcess(executable, args, ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ OSError: [WinError 193] %1 is not a valid Win32 application

Raghuramrwttw avatar Jul 30 '24 13:07 Raghuramrwttw

on this issue https://github.com/SergeyPirogov/webdriver_manager/issues/665

have this code and resolved the problem for me

from selenium import webdriver
from selenium.webdriver.chrome.service import Service as ChromeService
from webdriver_manager.chrome import ChromeDriverManager

if driver_path:
        driver_name = driver_path.split('/')[-1]
        if driver_name != "chromedriver":
            driver_path = "/".join(driver_path.split('/')[:-1] + ["chromedriver.exe"])
            if '/' in driver_path:
                driver_path = driver_path.replace('/', '\\')
            os.chmod(driver_path, 0o755)
driver = webdriver.Chrome(service=ChromeService(driver_path))

AlineGobbi avatar Jul 30 '24 13:07 AlineGobbi

same issue- this worked for me:

from webdriver_manager.chrome import ChromeDriverManager
from selenium.webdriver.chrome.service import Service

chrome_path = ChromeDriverManager().install()
if "THIRD_PARTY_NOTICES.chromedriver" in chrome_path:
    chrome_path = chrome_path.replace("THIRD_PARTY_NOTICES.chromedriver", "chromedriver")
s = Service(chrome_path)
driver = webdriver.Chrome(service=s)

sevroauasmo avatar Jul 30 '24 20:07 sevroauasmo

selenium.common.exceptions.WebDriverException: Message: 'chromedriver' executable may have wrong permissions.

def __init__(self):
    logging.info("Initializing ChromeDriver.")
    options = Options()
    options.add_experimental_option("prefs", {'profile.managed_default_content_settings.javascript': 2})
    options.add_argument("--disable-javascript")
    options.add_argument('headless')
    options.add_argument('window-size=1x1')
    options.add_argument("disable-gpu")
    options.add_argument("--disable-gpu")
    chrome_path = ChromeDriverManager().install()
    if "THIRD_PARTY_NOTICES.chromedriver" in chrome_path:
        chrome_path = chrome_path.replace("THIRD_PARTY_NOTICES.chromedriver", "chromedriver")
    self.driver = webdriver.Chrome(service=ChromeService(chrome_path), options=options)
    logging.info("ChromeDriver initialized.")

same issue

ahmedsafadii avatar Aug 01 '24 07:08 ahmedsafadii

This Issue was resolved by https://github.com/SergeyPirogov/webdriver_manager/pull/666 and released as 4.0.2. So in order to resolve this you must upgrade webdriver_manager to 4.0.2 first, and delete the driver that was already installed and caused problems (in the case of the original author C:\Users\deavalid.wdm\drivers\chromedriver\win64\127.0.6533.72). webdriver_manager will then redownload the driver and find the correct executable this time.

cortlepp avatar Aug 02 '24 07:08 cortlepp

This issue still exists on 4.0.2 on Ubuntu.

I have updated webdriver_manager to 4.0.2 and removed all files under /root/.wdm/drivers/chromedriver/linux64/ but still got the same issue.

OSError: [Errno 8] Exec format error: '/root/.wdm/drivers/chromedriver/linux64/129.0.6668.70/chromedriver-linux64/THIRD_PARTY_NOTICES.chromedriver'

haoyang324 avatar Sep 25 '24 22:09 haoyang324

@haoyang324 I was able to fix this in 4.0.2. I believe your issue is that you need to delete the file .../.wdm/drivers.json, which caches the binary paths. It most likely has cached the wrong path and you will get that one regardless the library version.

davidmartos96 avatar Sep 30 '24 20:09 davidmartos96

Thank you @davidmartos96, I do have cache with THIRD_PARTY_NOTICES.

However, even after deleting the cache, it gets regenerated with the same content.

To fix it, I have to manually remove the THIRD_PARTY_NOTICES from binary_path in the below drivers.json. Anyway it works well now!

{
    "linux64_chromedriver_129.0.6668.100_for_129.0.6668": {
        "timestamp": "23/10/2024",
        "binary_path": "/root/.wdm/drivers/chromedriver/linux64/129.0.6668.100/chromedriver-linux64/THIRD_PARTY_NOTICES.chromedriver"
    }

haoyang324 avatar Oct 23 '24 23:10 haoyang324

Weird. I know you have the code below but the cache always reverted to the one with THIRD_PARTY_NOTICES. It finally works normally after I uninstalled and reinstalled the webdriver manager. if 'LICENSE' in f: continue if 'THIRD_PARTY' in f: continue

haoyang324 avatar Oct 28 '24 20:10 haoyang324