Есть 2 вопроса:
- Есть ли возможность юзать WebDriverWait не указывая ему локатор элемента через By класс, а просто давая ему элемент который обьявляется в пейдж обджекте анотацией
@FindBy
Как-то так:
public void waitForElementApear(WebElement element) {
WebElement myDynamicElement = (new WebDriverWait(driver, 10)).until(new ExpectedCondition<WebElement>() {
@Override
public WebElement apply(WebDriver webDriver) {
return element;
}
});
}
-
Сейчас конструкцию типа:
public void waitFor() {
WebElement myDynamicElement = (new WebDriverWait(driver, 10)).until(new ExpectedCondition() {
@Override
public WebElement apply(WebDriver input) {
return input.findElement(By.cssSelector(“somelocator”));
}
});
}
IDE предлагает мне заменить лямбдой на такую:
public void waitFor() {
WebElement myDynamicElement = (new WebDriverWait(driver, 10)).until((WebDriver input) -> input.findElement(By.cssSelector("somelocator")));
}
Сам в лямбды еще особо не вникал, но то что советует IDE работает. Есть ли в них профит или это просто синтакс шугар?
Сразу отвечу - фреймворк с тестами на флешке с собой не ношу и разворачивать это все на ноутбуке мамы где стоит джава ниже 1.8 - точно не буду