Argumen --proxy-server Chrome baru berlaku setelah peramban dimulai. webdriver-manager mungkin memerlukan proksi lebih awal, saat mencari driver yang kompatibel dan mengunduh arsipnya.

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

Fragmen ini mengasumsikan dependensi webdriver-manager dan Requests yang sudah ada. Listener proksi yang dipilih adalah HTTP untuk kedua skema tujuan. Untuk unduhan driver publik yang diizinkan, daftar proksi HTTP menyediakan kandidat untuk URL proksi sesi. Pertahankan Session tetap hidup hingga instalasi atau pencarian cache manajer selesai, lalu teruskan driver_path ke penyiapan layanan Selenium biasa aplikasi.

Metode get khusus menerima argumen HTTP tambahan manajer dan mempertahankan validasi respons. Pilihan proksinya milik klien unduhan; konfigurasikan Chrome secara terpisah ketika navigasi juga memerlukan proksi.

trust_env=False membuat konfigurasi Session ini eksplisit, termasuk menonaktifkan pemilihan bundel CA yang berasal dari lingkungan. Jika rute unduhan memerlukan CA organisasi, sediakan bundel yang dimaksud pada pengaturan verify Session ini sambil mempertahankan pemeriksaan sertifikat.

Artikel terkait