Попробуйте следующий сценарий:
1 . Выберите все элементы, класс которых содержит термин 'flag-icon-gb' .(Вы можете ограничить поиск одним видом элемента, заменив * выше. Например, для поиска всех li, вы должны поставить //li[...]
2 .Выполните итерацию по своему списку, чтобы манипулировать первыми n элементами, которые вы хотите.
3 . Делайте то, что вы хотите для каждого элемента в цикле (сравните, получите детей, нажмитеи т. д., ...)
//Get all flags containing GB
List<WebElement> tipsGB = driver.findElements((By.xpath("//*[contains(@class,\'flag-icon-gb\')]"))
//Iterate over the list and do your stuff
for(int i=0; i<numberofElementsYouWant<;i++){
Webelement currentElement = tipsGB.get(i);
//manipulate your elements here
currentElement.Dostuff();
}
Редактировать: похоже, что ваша проблема связана со сравнением. Вы пытаетесь сравнить объекты (WebElements), а те - нетНе равны. Только их тексты. Попробуйте вместо этого:
String firstTip = tipsGB.get(0).getAttribute("data-tip-id");
Сделайте то же самое внутри цикла, а затем сравните
String nextTip = tipsGB.get(p).getAttribute("data-tip-id");
if (nextTip.equals(firstTip)) {
....
}