Een Selenium-paginatimeout achter een proxy instellen
Stel een time-out voor browsernavigatie in en onderscheid die van elementwachten, scripttime-outs en de WebDriver-besturingsverbinding.
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.')
Stel dit in vóór de navigatie op de driver die al is geconfigureerd met de bedoelde proxy. De methode van Python neemt seconden.
De gekozen paginastrategie bepaalt de voltooiing: normal wacht op volledige gereedheid van het document, terwijl eager een eerder stadium gebruikt. Geen van beide wacht op elk toekomstig door een script gemaakt verzoek.
| Limiet | Afgebakend werk |
|---|---|
| Time-out voor paginaladen | Navigatie die de gekozen voltooiingstoestand bereikt |
| Impliciete wachttijd | Pogingen om een element te lokaliseren |
| Scripttime-out | Toepasselijke asynchrone scriptuitvoering |
| Transporttime-out van de WebDriver van de runner | Het afzonderlijke besturingsverzoek van testscript naar driver |
Als die besturingsverbinding blijft hangen of een ongeschikte proxy gebruikt, lost een navigatiebudget van de browser dat niet op. Workflows met meerdere stappen hebben ook een algeheel taakbudget nodig; een bewakende runner kan vastgelopen voortgang apart van één navigatie detecteren.
Bewaar de gerapporteerde timer of het transport in het foutrecord. Een navigatietime-out alleen onderscheidt de proxyconfiguratie, vertraging van de bestemming en het laadgedrag van de pagina zelf niet.