如何为Python Selenium的WebDriverWait设置无超时?
实现无超时效果的WebDriverWait实例
WebDriverWait本身不支持直接设置“无限超时”,因为它的构造函数必须接收timeout参数。但你可以通过设置一个极大的超时值来绕过它的内置超时逻辑,让函数层面的@timeout()装饰器完全掌控超时行为。
两种可行的实现方式:
- 传入一个极大的整数,比如
10**18秒(约3000万年,远超过常规函数超时的时间范围):from selenium.webdriver.support.ui import WebDriverWait # 构造几乎不会触发自身超时的WebDriverWait wait = WebDriverWait(driver, timeout=10**18) - 或者使用
float("inf")(无穷大),不过部分旧版Selenium可能对无穷大的兼容性不佳,更推荐用极大整数:wait = WebDriverWait(driver, timeout=float("inf"))
这样设置后,WebDriverWait自身的超时机制几乎不会被触发,超时完全由你函数上的@timeout()装饰器来控制,正好符合你的需求。
内容的提问来源于stack exchange,提问作者Geoff Alexander
相关产品推荐
相关产品推荐

