L-argument --proxy-server ta' Chrome japplika biss wara li l-browser jibda. webdriver-manager jista' jkun jeħtieġ proxy qabel, waqt li jfittex driver kompatibbli u jniżżel l-arkivju tiegħu.

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

Dan il-framment jassumi d-dipendenzi eżistenti webdriver-manager u Requests. Il-proxy listener magħżul huwa HTTP għaż-żewġ skemi tad-destinazzjoni. Għat-tniżżil pubbliku tad-driver permess, il-lista tal-proxy HTTP tipprovdi kandidati għall-URLs tal-proxy tas-sessjoni. Żomm is-Session ħajja sakemm titlesta l-installazzjoni jew it-tfittxija fil-cache tal-maniġer, imbagħad għaddi driver_path lis-setup tas-servizz Selenium tas-soltu tal-applikazzjoni.

Il-metodu get personalizzat jaċċetta l-argumenti HTTP addizzjonali tal-maniġer u jżomm il-validazzjoni tar-risposta. L-għażla tal-proxy tappartjeni lill-klijent tat-tniżżil; ikkonfigura Chrome separatament meta n-navigazzjoni wkoll teħtieġ proxy.

trust_env=False tagħmel il-konfigurazzjoni ta' din is-sessjoni espliċita, inkluż li tiddiżattiva l-għażla tal-bundle CA derivata mill-ambjent. Jekk ir-rotta tat-tniżżil teħtieġ CA tal-organizzazzjoni, ipprovdi l-bundle maħsub fis-setting verify ta' din is-sessjoni filwaqt li żżomm il-verifiki taċ-ċertifikati.

Artikli relatati