Подождите, чтобы выполнить два действия - селен / Java
Я пытаюсь использовать свободное ожидание для выполнения двух действий, как показано ниже:
- Нажмите на кнопку поиска
- Проверьте результат для элемента
Прямо сейчас я пытаюсь с приведенным ниже кодом, и это не похоже на работу:
public SendMailPage waitForSometime() throws Exception {
FluentWait<WebDriver> wait = new FluentWait<WebDriver>(driver)
.withTimeout(Duration.ofMinutes(2))
.pollingEvery(Duration.ofSeconds(10))
.ignoring(NoSuchElementException.class);
WebElement element = wait.until(new Function<WebDriver, WebElement>() {
public WebElement apply(WebDriver driver) {
driver.findElement(By.xpath("//BUTTON[@type='submit'][text()='Search']")).click();
driver.findElement(By.xpath("xpath of the element i'm waiting to find"));
return driver.findElement(By.xpath("xpath of the element i'm waiting to find"));
}
});
element.isDisplayed();
return new SendMailPage();
}
Может кто-нибудь подсказать мне, как это исправить?
*** ОБНОВЛЕННЫЙ КОД: где ожидание одного элемента также не работает:
public SendMailPage assertMailSubject() throws Exception {
FluentWait<WebDriver> wait = new FluentWait<WebDriver>(driver)
.withTimeout(Duration.ofMinutes(2))
.pollingEvery(Duration.ofSeconds(30))
.ignoring(NoSuchElementException.class);
WebElement element = wait.until(new Function<WebDriver, WebElement>() {
public WebElement apply(WebDriver driver) {
return driver.findElement(By.xpath("the element that i am waiting for"));
}
}
);
return new SendMailPage();
}
1 ответ
Решение
Я исправил обе проблемы:
Код не работал как
NoSuchElementException
был из утилит Java вместо Selenium.А для выполнения двух действий я просто добавил действие поиска ключа перед оператором возврата.