Подождать обновления товаров в Яндекс.Маркет

Здравствуйте.
Имеем тест:

  1. Открыть браузер и развернуть на весь экран.
  2. Зайти на yandex.ru.
  3. Перейти в яндекс маркет
  4. Выбрать раздел Электроника
  5. Выбрать раздел Наушники
  6. Зайти в расширенный поиск
  7. Задать параметр поиска от 5000 рублей.
  8. Выбрать производителя Beats
  9. Нажать кнопку Применить.
  10. Проверить, что элементов на странице 10.
  11. Запомнить первый элемент в списке.
  12. В поисковую строку ввести запомненное значение.
  13. Найти и проверить, что наименование товара соответствует запомненному значению.

Как вставить ожидание обновления товаров после шага 9. А то тест запоминает название товара до обновления списка товаров. Я обхожу данную ситуацию через sleep.
Можно это сделать как-то через ожидания?

Страница yandex: Ой!
Скрин:

В Codecption я бы так написал:

$I->waitForElementVisible('/html/body/div[1]/div[4]/div[2]/div[1]/div[2]/div[1]/div[1]', 10);

Путь к блоку найденного товара…

Может попробуете дождаться окончания аякс запросов: “$.active” равным 0?

Такой вариант не подходит. Блок доступен сразу, даже после нажатия на кнопку “Применить” в фильтре, а только через доли секунды скрывается…

Получается надо сначала подождать обновления, а только потом смотреть в 1 карточку, а без sleep, смотрит моментально первую карточку до обновления

Создаешь такой метод-обертку:

public void waitUntilElementNotPresented(By locator){
        new WebDriverWait(getDriver(), 60).until(ExpectedConditions.invisibilityOfElementLocated(locator));
    }

И юзаешь его, чтобы дождаться исчезновения спиннера загрузки.

waitUntilElementNotPresented(spinnerLocator);