Cambia lingua
Italiano English Русский Deutsch Español Français Українська Tiếng Việt Türkçe Bahasa Indonesia हिन्दी 日本語 中文
Menu
Prezzi
Proxy
TIPI DI PROXY
PER POSIZIONE77 posizioni
Soluzioni
Risorse

Come usare un proxy con Selenium

Esegui Chrome o Firefox con Selenium tramite un indirizzo ISP statico. Ogni esempio di questa pagina è stato eseguito su un proxy locale prima della pubblicazione, e ciò che non ha funzionato è detto chiaramente.

In breve: In Chrome, passa --proxy-server=http://HOST:PORT come argomento; in Firefox, imposta un Proxy manuale nelle opzioni. Firefox può rispondere alla richiesta di password del proxy tramite l’handler WebDriver BiDi di Selenium, add_authentication_handler. Chrome nel nostro test non ci è riuscito: ignora le credenziali in --proxy-server, ed entrambi gli handler BiDi sono andati in timeout. Per Chrome, metti nella whitelist del proxy l’IP da cui girano i tuoi test, e il proxy non ha bisogno di credenziali, né in HTTP né in SOCKS5.

Selenium non instrada il traffico da solo: avvia un browser e gli consegna il proxy come parte delle sue opzioni. Per questo la risposta cambia tra Chrome e Firefox, e per questo l’autenticazione del proxy è il punto in cui falliscono la maggior parte delle configurazioni.

Proxy in Selenium con Python per Chrome e Firefox

Chrome legge il proxy da uno switch della riga di comando, Firefox da un oggetto proxy nelle sue opzioni. Entrambi accettano un proxy in whitelist senza altre impostazioni; Firefox può anche rispondere alla richiesta di password del proxy tramite WebDriver BiDi, cosa che Chrome nel nostro test non ha fatto.

Impostare un proxy in Selenium

  1. Trova l’IP pubblico da cui girano i tuoi test

    L’indirizzo della macchina o del runner CI così come lo vede internet, non quello locale. What Is My IP lo mostra.

  2. Metti quell’IP nella whitelist del proxy

    Una chiamata API, PUT /orders/ORDER_ID/whitelist, oppure lo strumento set_proxy_whitelist del server MCP; la dashboard non ha ancora un comando per farlo. La whitelist accetta indirizzi IPv4 e sostituisce la lista a ogni chiamata. Finché una whitelist è impostata, il proxy ammette solo gli indirizzi della lista e nome utente e password smettono di funzionare per quell’ordine; inviando una lista vuota la whitelist si disattiva e l’accesso con password torna a funzionare.

  3. Copia host e porta dall’ordine

    Da I miei proxy oppure dall’API. Con la whitelist impostata, nome utente e password non servono.

  4. Imposta il proxy nelle opzioni del browser

    Chrome: --proxy-server=http://HOST:PORT, oppure socks5://HOST:PORT dopo aver passato il proxy a SOCKS5. Firefox: un Proxy manuale con httpProxy e sslProxy.

  5. Apri una pagina e controlla l’indirizzo di uscita

    Carica una volta What Is My IP nel browser pilotato e verifica che mostri l’indirizzo che hai acquistato, poi esegui la suite.

# The proxy has your machine's IP on its whitelist, so no credentials
# are sent: Chrome ignores them in --proxy-server anyway.
from selenium import webdriver

options = webdriver.ChromeOptions()
options.add_argument("--headless=new")  # remove to watch the browser
options.add_argument("--proxy-server=http://HOST:PORT")

driver = webdriver.Chrome(options=options)
try:
    driver.get("https://example.com/")
    print(driver.title)
finally:
    driver.quit()
# Selenium 4.51+ with WebDriver BiDi; pip install selenium
from selenium import webdriver
from selenium.webdriver.common.proxy import Proxy, ProxyType

options = webdriver.FirefoxOptions()
options.enable_bidi = True
options.add_argument("-headless")  # remove to watch the browser
options.proxy = Proxy({
    "proxyType": ProxyType.MANUAL,
    "httpProxy": "HOST:PORT",
    "sslProxy": "HOST:PORT",
})

driver = webdriver.Firefox(options=options)
try:
    # Answers the proxy's 407 with your username and password
    driver.network.add_authentication_handler(
        lambda request: request.provide_credentials("USERNAME", "PASSWORD")
    )
    driver.get("https://example.com/")
    print(driver.title)
finally:
    driver.quit()
# The proxy has your machine's IP on its whitelist, so no credentials
# are sent. For a password instead, see selenium-firefox-auth.
from selenium import webdriver
from selenium.webdriver.common.proxy import Proxy, ProxyType

options = webdriver.FirefoxOptions()
options.add_argument("-headless")  # remove to watch the browser
options.proxy = Proxy({
    "proxyType": ProxyType.MANUAL,
    "httpProxy": "HOST:PORT",
    "sslProxy": "HOST:PORT",
})

driver = webdriver.Firefox(options=options)
try:
    driver.get("https://example.com/")
    print(driver.title)
finally:
    driver.quit()
# Switch the proxy to SOCKS5 first, then use the port the order shows.
# The whitelist applies to SOCKS5 as well, so no credentials here either.
from selenium import webdriver

options = webdriver.ChromeOptions()
options.add_argument("--headless=new")  # remove to watch the browser
options.add_argument("--proxy-server=socks5://HOST:PORT")

driver = webdriver.Chrome(options=options)
try:
    driver.get("https://example.com/")
    print(driver.title)
finally:
    driver.quit()
# Put the public IPv4 address your code runs from on the proxy's
# whitelist. Replaces the list; an empty list turns whitelisting off
# and the proxy falls back to username and password.
curl -X PUT "https://api.proxyjam.com/public/v1/orders/ORDER_ID/whitelist" \
  -H "X-API-Key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"whitelisted_ips": ["YOUR_IP"]}'

Codice testato per Selenium 4 in Python

L’esempio Firefox con password invia nome utente e password, quindi richiede un ordine senza whitelist impostata. Gli altri esempi per browser presuppongono che l’IP della tua macchina sia nella whitelist del proxy; quello SOCKS5 richiede anche di passare prima il proxy a SOCKS5, il che dà una nuova porta. Sostituisci i valori in maiuscolo con quelli del tuo ordine, e ORDER_ID, YOUR_API_KEY e YOUR_IP nella chiamata della whitelist.

Documentazione API completa

Opzioni proxy in Selenium, browser per browser

Testato il 2026-10-22 con Selenium 4.51, Chrome e Firefox in modalità headless, su un proxy locale che richiedeva una password su una porta e accettava un client in whitelist su un’altra.
Proxy HTTPProxy SOCKS5Nome utente e password
Chrome--proxy-server=http://HOST:PORT--proxy-server=socks5://HOST:PORTIgnorati in --proxy-server; usa la whitelist
FirefoxProxy con httpProxy e sslProxyProxy con socksProxy e socksVersion 5Ha funzionato tramite add_authentication_handler (BiDi), in HTTP
Chrome, handler BiDiadd_auth_handler e add_authentication_handler sono andati entrambi in timeoutNon testatoUsa la whitelist finché una versione successiva di Selenium o di Chrome non cambierà le cose

Che cosa va storto con Selenium e i proxy

Credenziali dentro --proxy-server

Chrome scarta nome utente e password da quell’argomento senza alcun errore, si collega senza di essi e riceve un 407 dal proxy. La pagina allora non si carica, e sembra un problema di rete anziché di autenticazione.

Il download del driver passa dal proxy

Quando le opzioni di Firefox contengono un proxy, Selenium Manager scarica il driver tramite quello stesso proxy. Con un proxy solo a password quel download fallisce prima che il browser parta; con la whitelist va a buon fine.

La whitelist contiene l’indirizzo sbagliato

Un runner CI esce spesso da un IP pubblico diverso da quello del tuo portatile, e alcuni lo cambiano tra un’esecuzione e l’altra. Metti in whitelist l’indirizzo da cui girano i test, e aggiornalo quando cambia, perché ogni chiamata sostituisce la lista.

SOCKS5 nel browser prima del passaggio

Un indirizzo impostato su HTTP non risponde in SOCKS5. Passa prima il proxy a SOCKS5 sul tuo ordine e usa la porta che mostra a quel punto; cambiare solo lo schema nell’argomento dà un browser che non riesce a collegarsi.

Che cosa ottiene dall’indirizzo un test nel browser

Nessuna password nel browser
La whitelist ammette l’indirizzo IPv4 del tuo runner, quindi nessun segreto finisce nelle opzioni o nei log
Entrambi gli schemi del browser
http:// per le pagine normali, socks5:// dopo il passaggio dell’ordine
Stessa origine a ogni esecuzione
L’esecuzione di ieri e quella di oggi partono da un unico IP, mantenuto per l’intero periodo di fatturazione
Driver in parallelo
Più driver possono condividere l’indirizzo, oppure ogni driver può averne uno proprio

Altre guide e il prodotto

Domande sui proxy in Selenium

Come si usa un proxy con autenticazione in Selenium?

In Firefox, attiva WebDriver BiDi e registra con driver.network.add_authentication_handler un handler che fornisca nome utente e password; con Selenium 4.51 ha funzionato. In Chrome, nel nostro test, non ha funzionato nulla che invii credenziali: le ignora nello switch del proxy, ed entrambi gli handler BiDi sono andati in timeout. Per Chrome, metti in whitelist l’IP pubblico da cui girano i tuoi test, e il browser si collega senza alcuna credenziale.

Come si imposta un proxy in Selenium con Python per Chrome?

Crea ChromeOptions, aggiungi l’argomento --proxy-server=http://HOST:PORT e passa le opzioni a webdriver.Chrome. Per SOCKS5, passa il proxy a SOCKS5 sul tuo ordine e usa socks5://HOST:PORT con la porta che l’ordine mostra a quel punto.

La whitelist IP funziona con SOCKS5?

Sì. Un indirizzo in whitelist viene accettato senza credenziali in HTTP e in SOCKS5, ed è questo che rende SOCKS5 utilizzabile da Chrome, dato che Chrome non può inviare nome utente e password SOCKS5. La whitelist si imposta tramite l’API o il server MCP e accetta indirizzi IPv4. SOCKS5

Ogni browser di una suite di test può usare un proxy diverso?

Sì, uno per driver: il proxy fa parte delle opzioni con cui parte un driver, quindi due driver possono usare due indirizzi. Non è possibile cambiare il proxy di un Chrome in esecuzione; avvia invece un nuovo driver.

Una suite lunga cambierà indirizzo a metà strada?

No. Il driver mantiene l’indirizzo con cui è partito finché non si chiude, e l’indirizzo stesso resta assegnato a te per l’intero periodo di fatturazione. Le suite che hanno bisogno di molte origini contemporaneamente richiederebbero un pool che le cambia, e non è ancora in vendita.

Per che cosa posso usare il proxy?

I test end-to-end del tuo prodotto, i controlli regionali del tuo negozio online, la verifica degli annunci, le ricerche di prezzo e la tutela del marchio si svolgono tutti senza revisione preventiva secondo la nostra politica di utilizzo accettabile. Pilotare un browser per superare CAPTCHA, difese anti-bot, limiti di frequenza o ban degli account è un’altra questione: l’indirizzo non lo fa, e la politica vieta di provarci. Politica di Utilizzo Accettabile

Un indirizzo statico rende ripetibili i test nel browser: la stessa suite, eseguita la settimana prossima, arriva dallo stesso punto, quindi una variazione nel risultato viene dal sito. Ordina un indirizzo dalla pagina dei proxy ISP, consulta la pagina dei prezzi e imposta lo stesso indirizzo nelle semplici chiamate HTTP con la guida per Python requests.

Fonti