Подскажите, как лучше сделать ожидание заданного количества элементов на странице

В тесте нужно проверять корректность удаления меток.
driver.findElements(By).size() не подойдет, так как сайт динамический и тесты будут фейлится.
Нашла вариант с использованием numberOfElementsToBe(By locator, java.lang.Integer number), но проблемы с реализацией. Возможно, кто-то встречался с подобной проблемой. Использую Selenium + Java + Testng

Опишите пожалуйста, что вам нужно проверять и когда. Спасибо.

А какие конкретно проблемы с реализацией numberOfElementsToBe?

Можно использовать как-то так:

WebDriverWait wait = new WebDriverWait(driver, 30000);
wait.until(ExpectedConditions.numberOfElementsToBe(<твой локатор>, <ожидаемое количество элементов>));

Можно с помощью ожиданий в матчерах:

import static java.util.concurrent.TimeUnit.SECONDS;
import static org.hamcrest.MatcherAssert.assertThat;
import static ru.yandex.qatools.htmlelements.matchers.MatcherDecorators.should;
import static ru.yandex.qatools.htmlelements.matchers.MatcherDecorators.timeoutHasExpired;

int expSize = 10;
assertThat(list + " has correct size", list,
should(hasSize(expSize)).whileWaitingUntil(timeoutHasExpired(10000)));

Этот матчер будет 10 секунд ждать, пока не станет 10 элементов.

Очень большое спасибо, сейчас попробую!

Первая проблема которая у вас есть, это отсутствие какой-то обёртки над Selenium’ом, сам Selenium низкоуровневая библиотека и нуждается в обёртках для удобства работы.

Посмотрите в сторону http://selenide.org/

С помощью этой библиотеки Ваша проблема решается так:
$$(locator).shouldHave(size(number));

1 лайк