脚本超时
脚本超时错误是一个 WebDriver 错误,当用户提供的脚本在会话的脚本超时时间到期之前没有完成时发生。
脚本超时时间是一个可配置的选项,这意味着您可以更改驱动程序中断注入脚本所花费的时间。默认情况下,驱动程序将在中断脚本并返回脚本超时错误之前等待 30 秒,但这可以扩展、限制和设置为无限。
如果会话脚本超时时间使用 null
值设置为无限,则您有将会话置于不可恢复状态的风险。请注意,这应该谨慎使用。
示例
考虑以下异步脚本,该脚本将在 35 秒后解析承诺或调用回调
python
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)
输出
ScriptTimeoutException: Timed out after 35000 ms
但是,如果您有一个预计会花费更长时间的脚本,则可以通过使用功能来扩展会话的默认脚本超时时间
python
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")
输出
finished successfully
另请参阅
- WebDriver 错误列表
- 关联的命令和类型