Как добраться до предыдущего элемента?

Всем привет. Хочу спросить, есть ли возможность используя CSS или Xpath локаторы, обратиться к элементу стоящему ПЕРЕД конкретным:) Я знаю есть отношения элемент следующий за элементом, мне надо обратную операцию.

Вот скриншот html. Мне нужно добраться до элемента li, стоящим перед (li class=“next”)
Кол-во элементов li меняется динамически

Почему бы тебе не искать просто все элементы li и уже ходить по массиву из них?
Если списков на странице несколько, то можно сначала найти нужный элемент ul, а внутри него искать все li’шки.

preceding-sibling:: — Возвращает множество элементов на том же уровне, предшествующих текущему.
1 лайк

в случае если next всегда последний
//ul[@class=‘pagningLinks’]//li[last()-1]

4 лайка

так же можно добраться используя preceding-sibling http://www.w3schools.com/xpath/xpath_axes.asp

Привет

Получи список всех элементов по селектору вроде “.pagingLinks > li”:

List allElements = driver.findElements(By.cssSelector(".pagingLinks > li"));

А потом обращайся к предпоследнему элементу списка

Всем спасибо, задача решена :slight_smile:

Ну тут если он не всегда предпоследний то лучше в цикле проходить, и как только у элемента класс будет next - взять элемент с индексом минус 1

1 лайк

Привет всем. Давно использую вот такую шпаргалку - мне очень помогает. Там можно найти ответ почти на любой вопрос по поводу селекторов;)
ссылка на пдф

2 лайка