一点背景:
流利的等待
Fluent Wait
是Wait
接口的实现,用户可以动态配置其超时和轮询间隔。实例定义了等待条件的FluentWait
最长时间以及检查条件的频率。用户还可以将等待配置为在等待时忽略特定类型的异常,例如NoSuchElementExceptions
在页面上搜索元素时。
WebDriverWait
WebDriverWait
是使用 WebDriver 实例的定制版FluentWait 。
您可以在这些QAWebDriverWait
和.FluentWait
Implicit vs Explicit vs Fluent Wait
Differences between impilicit, explicit and fluentwait
预期条件
ExpectedConditions
是定制的罐头条件,通常在 webdriver 测试中很有用。
根据您的问题,您trying with FluentWait since you want to control polling timeout
仍然可以通过以下方式实现相同的目标WebDriverWait
:
WebDriverWait
有 3 个构造函数,其中之一是:
WebDriverWait(WebDriver driver, long timeOutInSeconds, long sleepInMillis)
细节 :
public WebDriverWait(WebDriver driver, long timeOutInSeconds, long sleepInMillis)
This wait will ignore instances of NotFoundException that are encountered by default in the `until` condition, and immediately propagate all others. You can also add more to the ignore list by calling ignoring(exceptions to add).
Parameters:
driver - The WebDriver instance to pass to the expected conditions
timeOutInSeconds - The timeout in seconds when an expectation is called
sleepInMillis - The duration in milliseconds to sleep between polls (polling interval).
解决方案 :
您可以使用上面提到的构造函数,WebDriverWait
并且仍然可以控制轮询间隔。
注意:为了使您的程序逻辑简单易懂,除非绝对必要,否则不要使用直到WebDriverWait
。Fluent Wait
琐事:
为了进一步了解Fluent Wait
您可以关注讨论Selenium Webdriver 3.0.1-[Eclipse-Java-Chrome]: Selenium showing error for FluentWait Class