Xpath - это строка, точно идентифицирующая элемент на странице. Она используется для поиска определённых HTML блоков.
Инструменты для поиска по xPath
Каждый современный браузер, будь то IE, Firefox, Chrome, Opera или Safari позволяет искать элементы по xPath. Код, расположенный ниже, прокрутит страницу до элемента с xPath “HTML/BODY/DIV[2]/A[5]” и подсветит его красным цветом. Выполните его в консоли браузера. Если элемент не найдётся, то код попытается найти его родителя.
var x = "HTML/BODY/DIV[2]/A[5]";
var s = (x) => document.evaluate(x, document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue;
for(var i = 0;x.length > 4;++i) {
var e = s(x);
x = x.replace(/\/[^\/]+$/g, "");
if(e === null) continue;
e.scrollIntoView({block: "center"});
e.style.boxShadow = "0 0 10px 10px red";
break;
}
if(i) alert("Совпадение не точное. Найден "+i+" родитель искомого элемента.");
Нажатие кнопки F12 открывает консоль. В интернете вы можете найти подробную инструкцию для вашего браузера, как ею пользоваться.
Мы рекомендуем использовать специальные плагины. Эти специализированные расширения предоставляют простой интерфейс для поиска и подсветки найденных элементов. Это очень удобно и ускоряет работу специалиста.
Рекомендуемые плагины: - Chrome https://chrome.google.com/webstore/detail/xpath-helper/hgimnogjllphhhkhlmebbmlgjoejdpjl - Firefox https://addons.mozilla.org/en-US/firefox/addon/try-xpath/
Иногда xPath может терять актуальность по следующим причинам: - Вы ищете динамически генерируемый контент. В этом случае xPath строка может потерять актуальность. - Страница для залогиненного пользователя и гостевого может различаться. - Контент сайта может обновиться.
Частичное совпадение при поиске
Строка xPath разделена на секции и имеет каскадную структуру. Если полная строка указывает на конкретный элемент, то её часть указывает на один из родительских блоков. Если вы не можете найти элемент, то попробуйте удалить несколько секций с конца строки. Так, вы найдёте один из родительских блоков. Это поможет вам понять причины, почему поиск не срабатывает. То есть искать HTML/BODY/DIV[2], вместо HTML/BODY/DIV[2]/A[5].
Конкретный элемент может отсутствовать на странице когда: 1. Содержимое страницы изменилось. 1. Часть элементов не загрузилась. При этом загрузка элементов начинается только после какого-то действия, например, прокрутки страницы.
Если элемент не найден
Причина этому только одна - изменилось содержимое страницы.
Элемент найден в DOM страницы, но скрыт
Часть элементов на странице показывается только при совершении определённого действия. Например:
- Пункты подменю показываются при наведении курсора на пункт основного меню.
- Всплывающее окно показывается при нажатии на кнопку.
- В слайдере несколько элементов. Сейчас показывается 1, а найденный элемент на 5 позиции. Следовательно, чтобы его увидеть, надо прокрутить слайдер.
- и т.д.
Как вы видите xPath довольно простая вещь. Инструменты для работы с ним есть буквально на каждом персональном компьютере. Поэтому мы используем его в своих инструментах.