Селектор XPath – это мощный язык для выбора указанного набора из дерева тегов.
При разработке этого продукта мы хотели использовать более простые и часто используемые CSS-селекторы. Но CSS не позволяет выбирать элемент по индексу. Поэтому мы решили использовать XPath.
Например, мы хотим получить все теги div
, которые содержат comment-area
в своем атрибуте class
и имеют id
равный comments
. Итого, селектор результата будет таким:
.//div[@id='comments' and contains(concat(' ',normalize-space(@class),' '),' comments-area ')]
Чтобы получить только первый элемент из этого набора, мы должны ввести:
(.//div[@id='comments' and contains(concat(' ',normalize-space(@class),' '),' comments-area ')])[0]
Чтобы получить только последний элемент из этого набора, мы должны ввести:
(.//div[@id='comments' and contains(concat(' ',normalize-space(@class),' '),' comments-area ')])[last()]
Чтобы получить все элементы из этого набора после второго:
(.//div[@id='comments' and contains(concat(' ',normalize-space(@class),' '),' comments-area ')])[position()>2]
Если вы знакомы с селекторами CSS, эта служба поможет преобразовать CSS в XPath.
В приведенных выше примерах показаны наиболее часто используемые случаи при настройке продукта. Более подробную информацию о синтаксисе Xpath можно найти здесь и здесь. Также можно проверить селекторы на реальной разметке.