Я изо всех сил пытаюсь выяснить, как экземпляр 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 реализует функциональный интерфейс
public interface ExpectedCondition<T> extends Function<WebDriver, T> {}
, который принимает в качестве первого аргумента WebDriver.
Как экземпляр WebDriver передается в ExpectedCondition для visibilytOf ()?
Спасибо