Введение в XPath

Опубликовано: 22 Марта, 2022

XPath (XML Path) - это выражение, которое используется для поиска элемента или узла в XML-документе. В Selenium он обычно используется для поиска веб-элементов.

Пример:

 // ввод [@id = 'fakebox-input']

В этом примере мы находим элемент input, чей id равен fakebox-input.

XML Code:

<?xml version="1.0" encoding="UTF-8"?> 
<bookstore>
   
  <book category = "Math">
    <title lang="en">IIT Mathematics</title>
    <author>A Das Gupta</author>
  </book>
   
  <book category = "Chemistry">
    <title lang="en"> Inorganic chemistry for JEE</title>
    <author>V K Jaiswal</author>
  </book>
   
</bookstore>

XML-код представляет собой древовидную структуру, как мы можем видеть в приведенном выше XML, код начинается с узла книжного магазина , у которого есть дочерний узел- книга, и за ним следует категория атрибута, значение которой - «Math» . У узла книги есть 2 дочерних узла, то есть название и автор .

Для выбора элемента автора книги по химии будет использоваться следующий XPath:

 / bookstore / book [@ category = 'Химия'] / автор

Синтаксис XPath:

 // тэг [@attribute = 'значение']

Выражения XPath:

Условное обозначение Описание
// Выбирает узлы в документе из текущего узла, которые соответствуют выбору, независимо от того, где они находятся
/ Выбирает корневой узел
название тэга Имя тега текущего узла
@ Выберите атрибут
атрибут Имя атрибута узла
ценить Значение атрибута

Типы XPath:

  • Абсолютный XPath
  • Относительный Xpath

Абсолютный XPath:
Absolute XPath использует корневой элемент кода HTML / XML, за которым следуют все элементы, необходимые для достижения желаемого элемента. Начинается с косой черты '/' . Как правило, Absolute XPath не рекомендуется, потому что в будущем любой веб-элемент при добавлении или удалении изменится и Absolute XPath.

  • Пример:
     / html [1] / body [1] / div [6] / div [1] / div [3] / div [1] / div [1] / div [1] / div [3] / ul [1] / li [2] / a [1] 

Относительный XPath;
В этом случае XPath начинается с двойной косой черты «//», что означает, что он может искать элемент в любом месте веб-страницы. Обычно предпочтительным является относительный Xpath, поскольку они не являются полным путем от корневого узла.

  • Пример:
     // ввод [@id = 'fakebox-input'] 

Если вы хотите узнать, как заставить XPath идентифицировать веб-элементы, откройте веб-страницу в браузере Chrome и проверьте элемент, щелкнув правой кнопкой мыши на веб-странице, а затем нажмите «ctrl + f», чтобы найти веб-элементы с помощью XPath. Вы также можете использовать расширение chrome, например chropath, чтобы найти xpath для веб-элемента .

Часто используемые функции XPath:



  • содержит()
  • Начать с ()
  • Текст()

contains (): эта функция используется для выбора узла, значение атрибута которого содержит указанную строку, указанную в аргументе функции.
Пример:

 // ввод [содержит (@id, 'fakebox')] 

start-with (): эта функция используется для выбора узла, чье указанное значение атрибута начинается с указанного строкового значения, указанного в аргументах функции.
Пример:

 // ввод [начинается с (@id, 'fakebox')] 

text (): эта функция используется для поиска узла, имеющего точное совпадение с указанным строковым значением в функции.
Пример:

 // div 

Использование AND и OR в XPath
И и ИЛИ используются для объединения двух или более условий для поиска узла.
Пример:

 // input [@value = 'Log In' или @type = 'submit'] 


Точно так же мы можем применить оператор AND в XPath.

РЕКОМЕНДУЕМЫЕ СТАТЬИ