Введение в XPath
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.