leonidessaguisagjr / webdriverdownloader

Python module to facilitate downloading and deploying WebDriver binaries. Currently supporting geckodriver, chromedriver and operachromiumdriver.
https://pypi.org/project/webdriverdownloader/
MIT License
20 stars 17 forks source link

Cannot download chromedriver for versions 115 and above #20

Closed kimfaint closed 8 months ago

kimfaint commented 8 months ago

The current version of chrome is 120, but the latest version this tool downloads is 114:

$ webdriverdownloader chrome
Downloading WebDriver for browser: 'chrome'
Symlink /home/kim/bin/chromedriver already exists and will be overwritten.
Driver binary downloaded to: /home/kim/webdriver/chrome/114.0.5735.90/114.0.5735.90%2Fchromedriver_linux64/chromedriver
Symlink created: /home/kim/bin/chromedriver

If we try to specify a newer version that 114 if fails with runtime error:

$ webdriverdownloader chrome:115
Downloading WebDriver for browser: 'chrome'
Error, unable to find appropriate download for linux64.
Traceback (most recent call last):
  File "/home/kim/.local/share/virtualenvs/webdriverdownloader-MSPgnHFF/bin/webdriverdownloader", line 33, in <module>
    sys.exit(load_entry_point('webdriverdownloader==1.1.0.3', 'console_scripts', 'webdriverdownloader')())
  File "/home/kim/.local/share/virtualenvs/webdriverdownloader-MSPgnHFF/lib/python3.8/site-packages/webdriverdownloader-1.1.0.3-py3.8.egg/webdriverdownloader/cli.py", line 44, in main
    extracted_binary, link = downloader.download_and_install(version)
  File "/home/kim/.local/share/virtualenvs/webdriverdownloader-MSPgnHFF/lib/python3.8/site-packages/webdriverdownloader-1.1.0.3-py3.8.egg/webdriverdownloader/webdriverdownloader.py", line 174, in download_and_install
    filename_with_path = self.download(version,
  File "/home/kim/.local/share/virtualenvs/webdriverdownloader-MSPgnHFF/lib/python3.8/site-packages/webdriverdownloader-1.1.0.3-py3.8.egg/webdriverdownloader/webdriverdownloader.py", line 129, in download
    download_url = self.get_download_url(version, os_name=os_name, bitness=bitness)
  File "/home/kim/.local/share/virtualenvs/webdriverdownloader-MSPgnHFF/lib/python3.8/site-packages/webdriverdownloader-1.1.0.3-py3.8.egg/webdriverdownloader/webdriverdownloader.py", line 403, in get_download_url
    raise RuntimeError(error_message)
RuntimeError: Error, unable to find appropriate download for linux64.

The reason for this is for version 115 and beyond there is a new method to download chromedriver binaries, see https://chromedriver.chromium.org/downloads:

If you are using Chrome version 115 or newer, please consult the Chrome for Testing availability dashboard. This page provides convenient JSON endpoints for specific ChromeDriver version downloading.

I have forked this repo and will be working on a PR to fix this and use the new endpoints for chrome versions >= 115.