我很难理解WebDriver实例是如何传递到Selenium的预期条件中的。
所以我有一个简单的WebDriverWait,用于等待网页元素的可见性:
new WebDriverWait(webDriver, Configuration.WEB_DRIVER_WAIT_TIMEOUT)
.until(ExpectedConditions.visibilityOf(element));
这里的webDriver实例是之前初始化的chromedriver。
我的问题是:在visibilityOf()方法中:
public static ExpectedCondition<WebElement> visibilityOf(final WebElement element) {
return new ExpectedCondition<WebElement>() {
@Override
public WebElement apply(WebDriver driver) {
return elementIfVisible(element);
}
@Override
public String toString() {
return "visibility of " + element;
}
};
}
在上面,WebDriver的哪个实例会被传递给apply()方法,以及如何传递呢? 我理解ExpectedCondition实现了Function接口。
public interface ExpectedCondition<T> extends Function<WebDriver, T> {}
第一个参数是WebDriver。
WebDriver实例如何传递给visibilityOf()的ExpectedCondition?
谢谢。