Подождите, чтобы выполнить два действия - селен / Java

Я пытаюсь использовать свободное ожидание для выполнения двух действий, как показано ниже:

  1. Нажмите на кнопку поиска
  2. Проверьте результат для элемента

Прямо сейчас я пытаюсь с приведенным ниже кодом, и это не похоже на работу:

 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 ответ

Решение

Я исправил обе проблемы:

  1. Код не работал как NoSuchElementException был из утилит Java вместо Selenium.

  2. А для выполнения двух действий я просто добавил действие поиска ключа перед оператором возврата.

Другие вопросы по тегам