L'argomento --proxy-server di Chrome si applica solo dopo l'avvio del browser. webdriver-manager potrebbe aver bisogno di un proxy prima, mentre cerca un driver compatibile e ne scarica l'archivio.

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

Questo frammento presuppone le dipendenze esistenti webdriver-manager e Requests. Il listener proxy scelto è HTTP per entrambi gli schemi di destinazione. Per i download pubblici di driver consentiti, l'elenco di proxy HTTP fornisce candidati per gli URL proxy della sessione. Mantieni attiva la Session finché l'installazione o la ricerca nella cache del gestore non è completata, poi passa driver_path alla consueta configurazione del servizio Selenium dell'applicazione.

Il metodo get personalizzato accetta gli argomenti HTTP aggiuntivi del gestore e conserva la validazione della risposta. La scelta del proxy spetta al client di download; configura Chrome separatamente quando anche la navigazione richiede un proxy.

trust_env=False rende esplicita la configurazione di questa sessione, inclusa la disattivazione della selezione del bundle CA derivato dall'ambiente. Se il percorso di download richiede una CA aziendale, fornisci il bundle previsto nell'impostazione verify di questa sessione mantenendo i controlli sui certificati.

Articoli correlati