Skip to content

XPath [Contains, Sibling, Ancestor, AND OR, Parent, Start with]

Во время поиска элемента на странице не всегда можно привязаться к его уникальному атрибуту или тегу. На этот случай в XPath, есть функции позволяющие строить более сложные пути, часть из которых мы сегодня разберем:

  • Contains
  • Sibling
  • Ancestor
  • AND OR
  • Parent
  • Start with
 
CONTAINS

Используя функцию ‘contains’ мы можем находить элементы по частичному значению атрибута (@class, @id…) или текста ( text() ):

SIBLING
Возвращает множество элементов на том же уровне (вверх или низ).
Для этого ключевого слова существует 2 функции:
  • preceding-sibling:: — возвращает множество элементов на том же уровне, предшествующих текущему
  • following-sibling:: — возвращает множество элементов на том же уровне, следующих за текущим
 
Например, попробуем найти значение ячейки в таблице по ее названию, т.е. найти сначала элемент по тексту ‘Industry’ и обратиться к следующему на том же уровне элементу с тегом ‘td’:
 
//th[text()='Industry']//following-sibling::td[1]
ANCESTOR

Функция ancestor:: — возвращает множество предков.

Например, можно найти таблицу зная значение одной из его ячеек (подняться вверх по дереву и взять ближайшую таблицу по индексу):

//th[text()='Industry']//ancestor::table[1]
AND OR

Используя AND и OR, мы можем поместить 2 условия в наше выражение XPath:

PARENT

Функция parent:: — возвращает предка на один уровень назад

START WITH

Используя эту функцию мы можем находить элементы по началу значению атрибута (@class, @id…) или текста ( text() ):

Leave a Reply

Your email address will not be published. Required fields are marked *