Skript-Timeout
Der Skript-Timeout-Fehler ist ein WebDriver-Fehler, der auftritt, wenn ein vom Benutzer bereitgestelltes Skript nicht abgeschlossen wurde, bevor die Timeout-Dauer der Sitzung abgelaufen ist.
Die Timeout-Dauer für Skripte ist eine konfigurierbare Eigenschaft, was bedeutet, dass Sie ändern können, wie lange es dauert, bis der Treiber ein eingefügtes Skript unterbricht. Standardmäßig wartet der Treiber 30 Sekunden, bevor er das Skript unterbricht und mit einem Skript-Timeout-Fehler antwortet, aber dies kann verlängert, begrenzt und auf unbestimmt festgelegt werden.
Wenn die Timeout-Dauer der Sitzung durch die Verwendung eines null-Werts auf unbestimmt festgelegt wird, besteht die Gefahr, dass die Sitzung in einen nicht wiederherstellbaren Zustand versetzt wird. Seien Sie sich bewusst, dass dies mit Vorsicht verwendet werden sollte.
Beispiel
Betrachten Sie das folgende asynchrone Skript, das das Versprechen auflöst oder den Rückruf aufruft, nachdem 35 Sekunden vergangen sind:
from selenium import webdriver
from selenium.common import exceptions
session = webdriver.Firefox()
try:
session.execute_script("""
let [resolve] = arguments;
setTimeout(resolve, 35000);
""")
except exceptions.ScriptTimeoutException as e:
print(e.message)
Ausgabe:
ScriptTimeoutException: Timed out after 35000 ms
Es ist jedoch möglich, den Standard-Skript-Timeout der Sitzung durch die Verwendung von Eigenschaften zu verlängern, wenn Sie ein Skript erwarten, das länger dauert:
from selenium import webdriver
from selenium.common import exceptions
session = webdriver.Firefox(capabilities={"alwaysMatch": {"timeouts": {"script": 150000}}})
session.execute_script("""
let [resolve] = arguments;
setTimeout(resolve, 35000);
""")
print("finished successfully")
Ausgabe:
finished successfully
Siehe auch
- Liste der WebDriver-Fehler
- Zugehörige Befehle und Typen: