Search code examples
pythonseleniumselenium-chromedriverpyinstaller

Automatic download of appropriate chromedriver for Selenium in Python


Unfortunately, Chromedriver always is version-specific to the Chrome version you have installed. So when you pack your python code AND a chromedriver via PyInstaller in a deployable .exe-file for Windows, it will not work in most cases as you won't be able to have all chromedriver versions in the .exe-file.

Anyone knows a way on how to download the correct chromedriver from the website automatically?

If not, I'll come up with a code to download the zip-file and unpack it to temp.

Thanks!


Solution

  • Here is the other solution, where webdriver_manager does not support. This script will get the latest chrome driver version downloaded.

    import requests
    import wget
    import zipfile
    import os
    
    # get the latest chrome driver version number
    url = 'https://chromedriver.storage.googleapis.com/LATEST_RELEASE'
    response = requests.get(url)
    version_number = response.text
    
    # build the donwload url
    download_url = "https://chromedriver.storage.googleapis.com/" + version_number +"/chromedriver_win32.zip"
    
    # download the zip file using the url built above
    latest_driver_zip = wget.download(download_url,'chromedriver.zip')
    
    # extract the zip file
    with zipfile.ZipFile(latest_driver_zip, 'r') as zip_ref:
        zip_ref.extractall() # you can specify the destination folder path here
    # delete the zip file downloaded above
    os.remove(latest_driver_zip)