Script timeout
Der script timeout-Fehler ist ein WebDriver-Fehler, der auftritt, wenn ein vom Benutzer bereitgestelltes Skript nicht abgeschlossen wurde, bevor die script timeout-Dauer der Sitzung abgelaufen ist.
Die script timeout-Dauer ist eine konfigurierbare Fähigkeit, 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 script timeout-Fehler zurückkehrt. Diese Dauer kann jedoch verlängert, begrenzt oder unbegrenzt festgelegt werden.
Wenn die script timeout-Dauer der Sitzung mit einem null
-Wert auf unbegrenzte Zeit festgelegt ist, besteht das Risiko, dass die Sitzung in einen nicht mehr 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ösen oder den Rückruf aufrufen wird, 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, die standardmäßige script timeout-Dauer der Sitzung zu verlängern, indem Sie Fähigkeiten verwenden, wenn Sie ein Skript haben, von dem Sie erwarten, dass es 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
-
Zugehörige Befehle und Typen: