#java #selenium #selenium-webdriver #automated-tests
#java #селен #selenium-webdriver #автоматизированные тесты
Вопрос:
Это самый известный способ создания функции ожидания
public BaseFunction(WebDriver driver) {
this.driver = driver;
wait = new WebDriverWait(this.driver, 30);
}
public WebElement waitUntil(By element) {
return wait.until(ExpectedConditions.visibilityOfElementLocated(element);
}
но я хочу создать функцию, которая принимает ожидаемые условия в качестве параметра. Мне нужно выбрать, является ли visibilityOfElementLocated или invisibilityOfElementLocated . Я не хочу дублировать функции.
Ответ №1:
Вы можете переписать свой waitUntil
метод, чтобы принимать условие в качестве параметра следующим образом:
public WebElement waitUntil(Function<WebDriver, WebElement> condition) {
return wait.until(condition);
}
Затем вы можете вызвать его как либо
baseFunction.waitUntil(ExpectedConditions.visibilityOfElementLocated(element));
или
baseFunction.waitUntil(ExpectedConditions.invisibilityOfElementLocated(element));