Impostare un timeout di caricamento pagina di Selenium dietro un proxy
Impostate un timeout di navigazione del browser e distinguetelo dalle attese degli elementi, dai timeout degli script e dalla connessione di controllo WebDriver.
from selenium.common.exceptions import TimeoutException
driver.set_page_load_timeout(30)
try:
driver.get('https://example.com/')
except TimeoutException:
print('The navigation did not finish within its page-load timeout.')
Impostatelo prima della navigazione sul driver già configurato con il proxy previsto. Il metodo di Python accetta secondi.
La strategia di caricamento pagina scelta definisce il completamento: normal attende la piena disponibilità del documento, mentre eager usa uno stato precedente. Nessuna delle due attende ogni futura richiesta creata da script.
| Limite | Lavoro delimitato |
|---|---|
| Timeout di caricamento pagina | Navigazione che raggiunge il suo stato di completamento scelto |
| Attesa implicita | Tentativi di individuazione degli elementi |
| Timeout dello script | Esecuzione asincrona di script applicabile |
| Timeout del trasporto WebDriver del runner | La richiesta di controllo separata dallo script di test al driver |
Se quella connessione di controllo si blocca o prende un proxy inadeguato, il budget di navigazione del browser non lo risolve. I flussi di lavoro a più passaggi necessitano anche di un budget complessivo; un runner supervisore può rilevare un avanzamento bloccato separatamente da una singola navigazione.
Conservate il timer o il trasporto segnalato nel record di errore. Un timeout di navigazione da solo non distingue la configurazione del proxy, il ritardo della destinazione e il comportamento di caricamento della pagina stessa.