Ответ
XPath (XML Path Language) — это язык запросов для навигации по узлам XML- или HTML-документа. В автоматизации тестирования (например, с Selenium) он применяется для поиска элементов в DOM веб-страницы.
Основные виды выражений:
- Абсолютный путь: Начинается с корня (
/). Хрупкий./html/body/div[1]/form/input - Относительный путь: Начинается с
//. Ищет элемент в любом месте документа.//input[@id='username']
Полезные функции и операторы:
//button[contains(@class, 'btn-primary')] // Кнопка, чей класс содержит подстроку
//a[text()='Log Out'] // Ссылка с точным текстом
//div[starts-with(@id, 'user_')] // Div, чей ID начинается с 'user_'
//input[@type='submit' and @disabled] // Комбинация условий
//ul/li[last()] // Последний элемент в списке
| Сравнение с CSS-селекторами: | Критерий | XPath | CSS-селектор |
|---|---|---|---|
| Поиск по тексту | Да (text()). |
Нет. | |
| Навигация вверх | Да (родитель ..). |
Нет. | |
| Производительность | Может быть медленнее. | Обычно быстрее. | |
| Читаемость | Может быть сложным. | Чаще проще. |
Рекомендация: Используйте XPath, когда нужна сложная логика поиска (например, по тексту или сложным отношениям элементов). Для простых случаев предпочтительнее стабильные CSS-селекторы или поиск по ID и data-атрибутам (например, data-testid).