我正在努力弄清楚 WebDriver 实例是如何传递给 Selenium 的预期条件的。
所以我有一个简单的 WebDriverWait 用于 web 元素的可见性:
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 实现了函数接口
public interface ExpectedCondition<T> extends Function<WebDriver, T> {}
它将 WebDriver 作为第一个参数。
WebDriver 的实例如何传递给 visibilytOf() 的 ExpectedCondition?
谢谢