Сравнение версий

Ключ

  • Эта строка добавлена.
  • Эта строка удалена.
  • Изменено форматирование.

...

В Xpath есть 7 типов узлов, нас интересуют только 3: Элемент, Атрибут, Текст (который мы видим на кнопке, в поле или где-либо еще)

Узел

Вид в DevTools

Синтаксис

Примеры

Элемент 

Элемент - Основной узел, по которому осуществляется поиск


//Элемент[ ]

//div[ ], //span[ ], //button[ ]

Атрибут (или свойство, параметр) элемента и его значение

после знака равно


//Элемент[@Атрибут = 'Значение']

//span[@class = 'ui-button-text']

Но вообще название атрибута можно указать в коде страницы и оно может быть любым

Текст


//Элемент[text() = 'Текст']

//span[text() = 'Войти']

В данном примере мы видим, что в тексте элемента содержатся пробелы, с ними боремся с помощью функции normalize-space() (Дальше по тексту есть примеры по ней)

Далее спецсимволы:

Спецсимвол

Описание

Примеры

*

Соответствует любому узлу элемента

Используем если мы не знаем названия элемента или считаем, что оно будет часто меняться

//*[text() = 'Войти']

@*

Соответствует любому узлу атрибута

Используем если мы не знаем названия атрибута элемента или считаем, что оно будет часто меняться

//span[@*='ui-button-text']

...


Функции Xpath. 

Выделены только строковые функции. (Если нужно что-то еще, то сюда: https://www.hostcms.ru/documentation/step-by-step/xslt/xslt-functions/):

...

(Полный список операторов: https://msiter.ru/tutorials/xpath/operators) 

Отношения элементов. В xpath есть такие понятия, как: Родитель(/parent:: или /ancestor::), Потомок (/child:: или /descendant::) и Сестра(сестринский элемент), которая может быть ниже или выше (following-sibling или preceding-sibling).

 Отношения с примерами, описаны тут: https://testerslittlehelper.wordpress.com/2016/07/10/real-xpath/  

Чаще всего поиск осуществляется по тексту содержащемуся в элементе, просто потому что текст ищется легче всего, он присутствует практически во всех элементах и меняется не так часто. 

...