Skip to content

Instantly share code, notes, and snippets.

@ildarius
Last active November 16, 2023 15:46
Show Gist options
  • Save ildarius/c530f9e846e0df4e83f286002effdcca to your computer and use it in GitHub Desktop.
Save ildarius/c530f9e846e0df4e83f286002effdcca to your computer and use it in GitHub Desktop.
Примеры xPath

Ищем по тексту (содержит)

Найди div, a, id итд которые содержат текст

some writing

//*/div[contains(text(),"some writing")]

Ищем по тексту (когда точный текст)

a[normalize-space(text())="ANCHOR TEXT"]

Поиск в родительском ноде

В данном примере сначала находим родительскй PARENT_ID и после этого ищем текст SOME_TEXT В данном примере нам все равно где находится дочерний элемент (прямо под родителем или где-то далеко внутри) a он просо проверяет все дочерние записи под PARENT_ID

//*[@id="PARENT_ID"]//*/a[contains(text(), "SOME_TEXT")]

Похоже на то что сверху но смотрит на определенный ID

'//tr[contains(@id,"SOME_ID")]

Несколько условий для поиска

//*/td[@scope="row" and @type="varchar"]

Поднимись до родительской записи начиная от ребенка

Находим ребенка и идем вверх

<div>
 <a>txt</a>
</div>

//*/a[contains(text(),"txt")]/parent::div

Родиель родителя итд (etc.)

//*/a[contains(text(),"txt")]/ancestor::*/div

Несколько условий (пример №2)

Сначала вы находим базовый элемент (TR) после этого внутри квадратных скобок мы указываем все идентификаторы (ID) и даже дочерний элемент (B)!

Соседний элемент

Vid: https://youtu.be/2kKW9ly2j7k

Данный пример позволит найти div2 который по соседтству с div1

<div1>
</div1>
<div2>
 <select>
</div2>

//*/div[contains(text(),"LABEL_STRING")]/following-sibling::div/select

Ссылки:

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment