t.me/atinfo_chat Telegram группа по автоматизации тестирования

Не могу найти элемент XPath-запросом при движении вверх по дереву


(Vladis Lav) #1

Проблема заключается в том, что я не могу найти элемент при движении вверх по дереву.
Нужно найти элемент “checkbox_label m-switcher” относительно “oneclick-cart__automax-switcher”.

Что делал(по отдельности нахожу оба элемента):
“//[@class=‘checkbox__label m-switcher’]" - находит элемент
"//
[name=oneclick-cart__automax-switcher]” - находит элемент

А когда пытаюсь двигаться по дереву, то не находит элемент:
“//[@name=‘oneclick-cart__automax-switcher’]/…/[@class=‘checkbox__label m-switcher’]”

я в принципе не могу найти ниодин элемент при движении вверх, скорее всего я не понимаю что-то глобально. Но что именно?


(Vladislav Abramov) #2

оси xpath гуглите

вам нужно parent или ancestor


(Vladis Lav) #3

Да вот хотелось бы увидеть конкретный ответ для моего примера(для меня, особо одаренного…)
Почему-то не ложиться у меня в голову пока теория, надеялся, что при получении конкретного примера пазл сложится.


(A) #4

//label[contains(@class=‘checkbox_label m-switcher’)]

  • а вот так находит?

(Vladis Lav) #5

Александр,
//*[@name=‘oneclick-cart__automax-switcher’]/…//label[contains(@class=‘checkbox__label m-switcher’)]

так? пишет некорректный запрос


(Vladis Lav) #6

“parent::*[@name=‘oneclick-cart__automax-switcher’]”

тоже ничего не находит.


(Maksym Polynskyi) #7

попробуй 2 точки вместо 3х


(dyuk) #8

а так?
// [name=oneclick-cart__automax-switcher]//parent::label

и установите на хром себе плагин и жизнь должна наладиться


(Vladis Lav) #9

Разобрался, всем спасибо.
Рабочий вариант:

//[@name=‘oneclick-cart__automax-switcher’]/ parent::[@class=‘checkbox__label m-switcher’]


(Pavel) #10

Поставьте, что решён