Есть отличная удаленная работа для php+codeception+jenkins+allure+docker спецов. 100% remote! Присоединиться к проекту

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


(Sergey356) #1

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

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


(Сергей Блохин) #2

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

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

(5am) #3

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


(Александр Таранков) #4

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


(Bogdan Storozhuk) #5

Привет

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

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

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


(Sergey356) #6

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


(sidelnikovmike) #7

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


(ffess) #8

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