检查了多少次显式等待条件?
How many times the condition of explicit wait is checked?
在隐式等待的情况下,如果WebDriver
没有立即找到元素,则等待指定的时间,如果超过指定的时间仍未找到元素,则抛出异常。
表示在隐式等待的情况下,WebDriver
检查元素两次(最大值):
- 立即
- (如果立即找不到,)在指定时间结束时。
但是在显式等待的情况下,多久检查一次条件?
我的意思是它是否每秒检查一次条件是否变为 true/not null 或像隐式等待一样只检查两次?
默认情况下,它每 500 毫秒检查一次(即轮询)。
所以从源代码你可以看到 -
public final static long DEFAULT_SLEEP_TIMEOUT = 500;
public WebDriverWait(WebDriver driver, long timeOutInSeconds) {
this(driver, new SystemClock(), Sleeper.SYSTEM_SLEEPER, timeOutInSeconds, DEFAULT_SLEEP_TIMEOUT);
}
内部调用的地方 -
protected WebDriverWait(WebDriver driver, Clock clock, Sleeper sleeper, long timeOutInSeconds,
long sleepTimeOut) {
super(driver, clock, sleeper);
withTimeout(timeOutInSeconds, TimeUnit.SECONDS);
pollingEvery(sleepTimeOut, TimeUnit.MILLISECONDS);
ignoring(NotFoundException.class);
}
在隐式等待的情况下,如果WebDriver
没有立即找到元素,则等待指定的时间,如果超过指定的时间仍未找到元素,则抛出异常。
表示在隐式等待的情况下,WebDriver
检查元素两次(最大值):
- 立即
- (如果立即找不到,)在指定时间结束时。
但是在显式等待的情况下,多久检查一次条件?
我的意思是它是否每秒检查一次条件是否变为 true/not null 或像隐式等待一样只检查两次?
默认情况下,它每 500 毫秒检查一次(即轮询)。 所以从源代码你可以看到 -
public final static long DEFAULT_SLEEP_TIMEOUT = 500;
public WebDriverWait(WebDriver driver, long timeOutInSeconds) {
this(driver, new SystemClock(), Sleeper.SYSTEM_SLEEPER, timeOutInSeconds, DEFAULT_SLEEP_TIMEOUT);
}
内部调用的地方 -
protected WebDriverWait(WebDriver driver, Clock clock, Sleeper sleeper, long timeOutInSeconds,
long sleepTimeOut) {
super(driver, clock, sleeper);
withTimeout(timeOutInSeconds, TimeUnit.SECONDS);
pollingEvery(sleepTimeOut, TimeUnit.MILLISECONDS);
ignoring(NotFoundException.class);
}