Здравствуйте, помогите, пожалуйста.
Использую WebDriwer +Java
Есть много товарных категорий.
Можно ли проверить их все, использую общий локатор “.b-subcategory__title” Т.е. открыть каждую, проверить есть ли на странице ссылка “Стройка” (она общая), и вернуться на предыдущую страницу.
@Test
public void testBlockCatalog()
{
init();
driver.findElement(By.cssSelector(".b-subcategory__title")).click();
driver.findElement(By.linkText("Стройка"));
driver.navigate().back();
}
Если я правильно понял, то у Вас много категорий на странице, значит по данному локатору всегда будет выбран первый элемент.
Значит Вам надо в каждом тесте подсовывать нужный локатор. Значит их надо все куда-то положить, а потом подсовывать тесту например через DataProvider.
Вы конечно можете сделать все в одном тесте(поместить все findElements в один список и потом через цикл по ним бегать), но это будет не правильно.
Вы можете использовать метод findElements, который вернет массив элементов, находящихся по данному локатору и пройтись по ним в цикле. Что-то типа:
int total = driver.findElements(".b-subcategory__title").length;
for (int i = 0; i < total; i++) {
driver.findElements(".b-subcategory__title")[i].click();
driver.findElement(By.linkText("Стройка"));
driver.navigate().back();
}