Есть отличная удаленная работа для php+codeception+jenkins+allure+docker спецов. 100% remote! Присоединиться к проекту

Переключение на следующую страницу, если не нашел элемент на этой


(Denis Vovchenko) #1

Подскажите, где-то давно читал(видел) пример выполнения такого, но найти не могу.
Есть перечень элементов. По ним производится поиск, если элемента на этой странице нет - переключаем на следующую страницу.

Сейчас используется такой метод:

for(WebElement l: List<WebElement>) {
    if (l.getText().equals(String)) {
        l.click();
        break;
    }
}

Как дополнить метод if-ом, что б если элемент не найден на этой странице - переключить на следующую? И сразу же нужно учесть, если будет такая ситуация, что не будет элемента ни на одной странице.


(mipan) #2
while (true) {
    /*ваши проверки на странице.
    break, если нашли*/

    if (/*NextPageWebElement*/.isDisplayed()){
        /*NextPageWebElement*/.click();
    }
    else {
       breake;
    }
}

+. Добавить где надо ожиданий.

проверять можно через assertThat по к-нибудь триггеру, который меняется при выходе из цикла после нахождения элемента.

А вообще, у вас элемент рандомно появляется, что ли? Вы отфильтровать предварительно не можете и получить его на первой странице?


(Denis Vovchenko) #3

Спасибо. Как оказалось, рандомно. Скорее буду фильтровать.
Просто хочется знать и другой метод поиска, в таком случае.


(mipan) #4

заставлять тест ходить по всем 130+ страницам, что бы найти заранее известный элемент - в любом случае не ок.

если известна логика формирования ссылки на этот элемент, то стоит сразу переходить на него, если не проверятся сама таблица.