U может идентифицировать локаторы для 2 элементов -
1 - Элемент, до которого вы хотите достичь
2 - Общий Xpath для всех горизонтальных элементов в этом поле и запустить следующий код для прокруткиПо горизонтали.
public static void scrollTillElementHorizontally(By by, By allElements) {
if (driver.findElements(By) > 0 || driver.findElement(By).isDisplayed())
return;
int y = driver.findElement(allElements).getCenter().y;
int width = driver.manage().window().getSize().getWidth();
double startX = width * 0.80;
double endX = width * 0.20;
TouchAction action = new TouchAction(driver);
int i = 0;
while (i < 50) {
if (driver.findElements(By) > 0 || driver.findElement(By).isDisplayed())
break;
action.press(PointOption.point((int) startX, y)).waitAction(WaitOptions.waitOptions(Duration.ofSeconds(2)))
.moveTo(PointOption.point((int) endX, y)).release().perform();
i++;
}
}
И если вы хотите удалить дубликаты элементов при прокрутке, добавьте элементы в HashSet, которые будут удалять дубликаты при прокрутке.