Setarea unui timeout de încărcare a paginii Selenium în spatele unui proxy
Setați un timeout de navigare a browserului și distingeți-l de așteptările pentru elemente, de timeout-urile scripturilor și de conexiunea de control 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.')
Setați acest lucru înainte de navigare pe driverul deja configurat cu proxy-ul dorit. Metoda Python primește secunde.
Strategia de încărcare a paginii aleasă definește finalizarea: normal așteaptă pregătirea completă a documentului, iar eager folosește o stare mai timpurie. Niciuna nu așteaptă fiecare cerere viitoare creată de script.
| Limită | Muncă limitată |
|---|---|
| Timeout de încărcare a paginii | Navigarea ajunge în starea de finalizare aleasă |
| Așteptare implicită | Încercări de localizare a elementului |
| Timeout de script | Execuție asincronă de script aplicabilă |
| Timeout-ul transportului WebDriver al runnerului | Cererea de control separată de la scriptul de test la driver |
Dacă acea conexiune de control se blochează sau folosește un proxy nepotrivit, bugetul de navigare al browserului nu rezolvă asta. Fluxurile de lucru cu mai multe etape au nevoie și de un buget general al sarcinii; un runner supraveghetor poate detecta progresul blocat separat de o singură navigare.
Păstrați timerul sau transportul raportat în înregistrarea erorii. Un timeout de navigare singur nu distinge configurarea proxy-ului, întârzierea destinației și comportamentul de încărcare al paginii în sine.