Ein Selenium-Seitenlade-Timeout hinter einem Proxy setzen
Setzen Sie ein Timeout für die Browsernavigation und unterscheiden Sie es von Element-Waits, Skript-Timeouts und der WebDriver-Steuerverbindung.
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.')
Setzen Sie dies vor der Navigation auf dem Treiber, der bereits mit dem vorgesehenen Proxy konfiguriert ist. Pythons Methode akzeptiert Sekunden.
Die gewählte Seitenladestrategie bestimmt den Abschluss: normal wartet auf vollständige Dokumentbereitschaft, während eager einen früheren Zustand verwendet. Keine von beiden wartet auf jede künftig vom Skript erzeugte Anfrage.
| Grenze | Begrenzte Arbeit |
|---|---|
| Seitenlade-Timeout | Navigation, die ihren gewählten Abschlusszustand erreicht |
| Implizites Warten | Versuche zur Elementlokalisierung |
| Skript-Timeout | Anwendbare asynchrone Skriptausführung |
| Transport-Timeout des Runners für WebDriver | Die separate Steueranfrage vom Testskript an den Treiber |
Wenn diese Steuerverbindung hängt oder einen ungeeigneten Proxy verwendet, behebt ein Navigationsbudget des Browsers das nicht. Mehrstufige Workflows brauchen zusätzlich ein Gesamtbudget für den Job; ein überwachender Runner kann stockenden Fortschritt getrennt von einer einzelnen Navigation erkennen.
Behalten Sie den gemeldeten Timer oder Transport im Fehlerdatensatz. Ein Navigationstimeout allein unterscheidet weder Proxy-Einrichtung, Zielverzögerung noch das Ladeverhalten der Seite selbst.