Мое решение состоит в том, чтобы не использовать @ FindBy.
В объекте вашей страницы:
By someElementLocator = By.cssSelector(".locator");
public void waitForElementPresent(final By locator, int timeout) {
ExpectedCondition e = new ExpectedCondition<Boolean>() {
public Boolean apply(WebDriver driver) {
return driver.findElements(locator).size() > 0;
}
};
WebDriverWait wait = new WebDriverWait(driver, timeout);
wait.until(e);
}
public WebElement getSomeElement() {
waitForElementPresent(someElementLocator);
return driver.findElement(locator);
}
Возможно, это архитектурная проблема.Кажется, я не могу найти никаких ресурсов, подтверждающих, что поддержка @FindBy ждет, поэтому, возможно, ее использование зависит от дизайна / архитектуры теста.