Dem Chrome säin --proxy-server-Argument gëllt eréischt nodeems de Browser gestart ass. webdriver-manager kann éischter e Proxy brauchen, wärend en en kompatibelen Treiber sicht an d'Archiv dovun eroflued.

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()

Dës Fragment geet vun de bestoenden Ofhängegkeete webdriver-manager a Requests aus. De gewielten Proxy-Listener ass HTTP fir béid Zilschemata. Fir erlaabten ëffentlechen Treiber-Downloads liwwert d'HTTP-Proxy-Lëscht Kandidaten fir d'Proxy-URLen vun der Sëtzung. Halt d'Session lieweg, bis d'Installatioun oder d'Cache-Sich vum Manager fäerdeg ass, a gitt duerno driver_path un déi üblech Selenium-Service-Ariichtung vun der Applikatioun.

Déi personaliséiert get-Method akzeptéiert dem Manager seng zousätzlech HTTP-Argumenter a behält d'Validatioun vun der Äntwert. D'Proxy-Wiel gehéiert zum Download-Client; konfiguréier Chrome separat, wann d'Navigatioun och e Proxy brauch.

trust_env=False mécht d'Konfiguratioun vun dëser Sëtzung explizit, dorënner d'Deaktivéiere vun der Ëmwelt-ofgeleet CA-Bundle-Wiel. Wann den Downloadwee eng Organisatiouns-CA brauch, gëff de virgesinnene Bundle an der verify-Astellung vun dëser Sëtzung un a behalt d'Zertifikatskontrollen.

Ähnlech Artikelen