tis-wapt-selenium-webdriver-chrome icon

Selenium WebDriver Chrome

Silent install package for Selenium WebDriver Chrome

141.0.7390.54-5

Preprod packages are packages built on LUTI. They remain in PREPROD usually for 5 days, after which a new VirusTotal scan is performed.
If the package passes this last check, it is promoted to PROD and published on the store.

  • package: tis-wapt-selenium-webdriver-chrome
  • name: Selenium WebDriver Chrome
  • version: 141.0.7390.54-5
  • categories: Development
  • maintainer: WAPT Team,Tranquil IT,Jimmy PELÉ
  • editor: Chromium and WebDriver teams
  • licence: proprietary_free,wapt_public
  • locale: all
  • target_os: windows
  • impacted_process: chromedriver
  • architecture: x64
  • signature_date:
  • size: 9.46 Mo
  • installed_size: 14.32 Mo
  • homepage : https://chromedriver.chromium.org
  • conflicts :

package           : tis-wapt-selenium-webdriver-chrome
version           : 141.0.7390.54-5
architecture      : x64
section           : base
priority          : optional
name              : Selenium WebDriver Chrome
categories        : Development
maintainer        : WAPT Team,Tranquil IT,Jimmy PELÉ
description       : This package is used for update packages that require selenium usage, it provides the chrome driver
depends           : 
conflicts         : tis-selenium-chrome-driver
maturity          : PREPROD
locale            : all
target_os         : windows
min_wapt_version  : 2.3
sources           : https://googlechromelabs.github.io/chrome-for-testing/#stable
installed_size    : 14315520
impacted_process  : chromedriver
description_fr    : Ce paquet est utilisé pour mettre à jour les paquets qui nécessitent l'utilisation de selenium, il fournit le pilote chrome
description_pl    : Ten pakiet jest używany do aktualizacji pakietów, które wymagają użycia selenium, zapewnia sterownik chrome
description_de    : Dieses Paket wird für Update-Pakete verwendet, die die Verwendung von Selenium erfordern, und stellt den Chrome-Treiber bereit
description_es    : Este paquete se utiliza para actualizar paquetes que requieren el uso de selenium, proporciona el controlador de chrome
description_pt    : Este pacote é utilizado para atualizar pacotes que requerem a utilização do selénio e fornece o controlador do chrome
description_it    : Questo pacchetto è usato per aggiornare i pacchetti che richiedono l'uso di Selenium e fornisce il driver di chrome
description_nl    : Dit pakket wordt gebruikt voor het bijwerken van pakketten die selenium vereisen, het biedt het chrome stuurprogramma
description_ru    : Этот пакет используется для обновления пакетов, требующих использования selenium, он предоставляет драйвер chrome
audit_schedule    : 
editor            : Chromium and WebDriver teams
keywords          : selenium,driver,chrome
licence           : proprietary_free,wapt_public
homepage          : https://chromedriver.chromium.org
package_uuid      : 77eee95f-b1f2-4139-b5d1-85e365b55a98
valid_from        : 
valid_until       : 
forced_install_on : 
changelog         : 
min_os_version    : 10.0
max_os_version    : 
icon_sha256sum    : 057315a8260cf30af51ee9b8dd8fbdf10a0f0ffb9825e7409be03e3c9ae9d552
signer            : test
signer_fingerprint: b82fc8ef4a4475c0f69ac168176c2bfc58f572eb716c4eadd65e4785c155dd8e
signature_date    : 2025-09-30T21:52:20.000000
signed_attributes : package,version,architecture,section,priority,name,categories,maintainer,description,depends,conflicts,maturity,locale,target_os,min_wapt_version,sources,installed_size,impacted_process,description_fr,description_pl,description_de,description_es,description_pt,description_it,description_nl,description_ru,audit_schedule,editor,keywords,licence,homepage,package_uuid,valid_from,valid_until,forced_install_on,changelog,min_os_version,max_os_version,icon_sha256sum,signer,signer_fingerprint,signature_date,signed_attributes
signature         : bDN57+lcNlMkVXF0jwOb63itAEV1n0mUmh2Z5HbUo+KlVvenBbm4HXD7055lAm9APf43zyaccM81EHKVkqSQhRcrkCYHEo7na/uUlr5xadIqrbj5XJBFi1EpxjycW0LT8sHO1KRK0nhXRYmttDQxmTGZ7J5fUIqRmTRKNZAMOXtzK2+cQwgOYhMMVqqKI2C2nqXCVC2MjAgGOPag+lus5XsR/5Q1KiXRFHwdTTPZD4cstbP25FJmdqook2AxG+cWqfNso22xcy1UqXJ0mVlw2M3oLVoi73HInbPne2H8o1ftx5LCc3UVOeQPAuo1/iqhuo88WLc3Kg6weU/B0MaFEg==

# -*- coding: utf-8 -*-
from setuphelpers import *


bin_name = "chromedriver.exe"


def install():
    zip_name = glob.glob("chromedriver-*.zip")[0]
    zip_dir = zip_name.split(".zip")[0]
    unzip(zip_name, ".", f"{zip_dir}/{bin_name}", False)

    selenium_wapt_dir = makepath(WAPT.wapt_base_dir, "selenium")
    mkdirs(selenium_wapt_dir)
    driver_path = makepath(selenium_wapt_dir, bin_name)
    print(f'Copying: "{driver_path}" ({control.get_software_version()})')
    filecopyto(bin_name, selenium_wapt_dir)

    if not installed_softwares(name="^Google Chrome$") and not params.get("running_as_luti"):
        print(f'ERROR: You must install Google Chrome to use {control.name}\nYou can use the package "tis-chrome" for example')


def audit():
    # Declaring local variables
    audit_result = "OK"
    app_check = installed_softwares(name="^Google Chrome$")
    audit_version = False

    # Auditing software
    if not app_check and not params.get("running_as_luti"):
        print("%s is not installed" % control.package.split("-", 1)[-1].replace("-", " ").title())
        audit_result = "ERROR"
    elif audit_version:
        for to_audit in app_check:
            if Version(to_audit["version"], 1) != Version(control.get_software_version(), 1):
                print(
                    f'{to_audit["name"]} version is: {to_audit["version"]} and {control.name} version is: {control.get_software_version()}\n{control.name} may not work.'
                )
                audit_result = "WARNING"

    # audit_result = "OK"  # No longer return status since this package will be included in tis-wapt-selenium
    return audit_result


def uninstall():
    selenium_wapt_dir = makepath(WAPT.wapt_base_dir, "selenium")
    driver_path = makepath(selenium_wapt_dir, bin_name)
    if isfile(driver_path):
        print(f'Removing: "{driver_path}"')
        remove_file(driver_path)
    if dir_is_empty(selenium_wapt_dir):
        print(f'Removing: "{selenium_wapt_dir}"')
        remove_tree(selenium_wapt_dir)

# -*- coding: utf-8 -*-
from setuphelpers import *
from setupdevhelpers import *


def update_package():
    # Declaring local variables
    package_updated = False
    proxies = get_proxies()
    if not proxies:
        proxies = get_proxies_from_wapt_console()
    api_url = "https://googlechromelabs.github.io/chrome-for-testing/last-known-good-versions-with-downloads.json"
    download_dict = {
        "windows-x64": "win64",
        "windows-x86": "win32",
        "windows-all": "win32",
        "debian(>8),ubuntu,redhat_based-all": "linux64",
        "darwin-all": "mac-x64",
        "darwin-x64": "mac-x64",
        "darwin-arm64": "mac-arm64",
    }
    download_str = download_dict[control.target_os + "-" + ensure_list(control.architecture)[0]]

    # Getting latest version information from official sources
    print("API used is: %s" % api_url)
    json_load = wgets(api_url, proxies=proxies, as_json=True)["channels"]["Stable"]
    version = json_load["version"]
    for to_download in json_load["downloads"]["chromedriver"]:
        if to_download["platform"] == download_dict[control.target_os + "-" + ensure_list(control.architecture)[0]]:
            download_url = to_download["url"]
            latest_bin = to_download["url"].split("/")[-1]
            break

    # Downloading latest binaries
    print("Latest %s version is: %s" % (control.name, version))
    print("Download URL is: %s" % download_url)
    if not isfile(latest_bin):
        print("Downloading: %s" % latest_bin)
        wget(download_url, latest_bin, proxies=proxies)
    else:
        print("Binary is present: %s" % latest_bin)

    # Deleting outdated binaries
    remove_outdated_binaries(latest_bin, "zip")
    # arch_list = ensure_list(control.architecture)
    # remove_outdated_binaries(version, filename_contains=("x64" if "x64" in arch_list else "x86" if "x86" in arch_list else []))

    # # Checking version from file
    # if get_os_name() == "Windows" and "windows" in control.target_os.lower():
    #     version_from_file = get_version_from_binary(latest_bin)
    #     if Version(version_from_file, 4) == Version(version, 4):
    #         print(f"INFO: Binary file version ({version_from_file}) corresponds to online version ({version})")
    #     else:
    #         error(f"ERROR: Binary file version ({version_from_file}) do NOT corresponds to online version ({version})")

    # Changing version of the package
    if Version(version, 4) > Version(control.get_software_version(), 4):
        print("Software version updated (from: %s to: %s)" % (control.get_software_version(), Version(version)))
        package_updated = True
    else:
        print("Software version up-to-date (%s)" % Version(version))
    control.set_software_version(version)
    control.save_control_to_wapt()

    # Validating update-package-sources
    return package_updated

    # # Changing version of the package and validating update-package-sources
    # return complete_control_version(control, version)

01ca7fe94636e5a08fcb73849d3b5df25d51e2c82f4dd1a08f01798b25899819 : WAPT/certificate.crt
c85ce6c280726edc43116eea71daec06a093135944e7344a1c1cc30db55882da : WAPT/control
057315a8260cf30af51ee9b8dd8fbdf10a0f0ffb9825e7409be03e3c9ae9d552 : WAPT/icon.png
04ca20c2581160ea4b0f4989883328abfa77aabd95a3755326da4d8242721e20 : chromedriver-win64.zip
3416396ceee6f92f13170be5207c2df07c3bdca7525f5181a35344e7c7598d9b : luti.json
bd927cd7dc3888e481067e53f68babfe51e337d7b5f3f87174b1f91d6f1e2797 : setup.py
64b0d93eb7a1c324ad3a3e6ac387127867ed8d8e13b3891f72ab12dc791f78db : update_package.py