L'argument --proxy-server de Chrome ne s'applique qu'après le démarrage du navigateur. webdriver-manager peut avoir besoin d'un proxy plus tôt, lorsqu'il recherche un pilote compatible et télécharge son archive.

import requests
from webdriver_manager.chrome import ChromeDriverManager
from webdriver_manager.core.download_manager import WDMDownloadManager
from webdriver_manager.core.http import HttpClient

class ProxyHttpClient(HttpClient):
    def __init__(self, session):
        self.session = session

    def get(self, url, params=None, **kwargs):
        kwargs.setdefault('timeout', 30)
        response = self.session.get(url, params=params, **kwargs)
        self.validate_response(response)
        return response

with requests.Session() as session:
    session.trust_env = False
    session.proxies.update({
        'http': 'http://proxy.example:8080',
        'https': 'http://proxy.example:8080',
    })
    downloader = WDMDownloadManager(ProxyHttpClient(session))
    driver_path = ChromeDriverManager(download_manager=downloader).install()

Cet extrait suppose les dépendances existantes webdriver-manager et Requests. L'écouteur proxy choisi est HTTP pour les deux schémas de destination. Pour les téléchargements publics de pilotes autorisés, la liste de proxys HTTP fournit des candidats pour les URL de proxy de la session. Gardez la Session active jusqu'à la fin de l'installation ou de la recherche en cache du gestionnaire, puis transmettez driver_path à la configuration habituelle du service Selenium de l'application.

La méthode get personnalisée accepte les arguments HTTP supplémentaires du gestionnaire et conserve la validation de la réponse. Le choix du proxy appartient au client de téléchargement ; configurez Chrome séparément lorsque la navigation a aussi besoin d'un proxy.

trust_env=False rend explicite la configuration de cette session, y compris la désactivation de la sélection du paquet CA dérivé de l'environnement. Si la route de téléchargement exige une CA d'organisation, fournissez le paquet prévu dans le réglage verify de cette session tout en conservant les vérifications de certificats.

Articles similaires