Selenium XPath для веб-таблицы с использованием родительского и родственного

#selenium #selenium-webdriver #xpath

#selenium #selenium-webdriver #xpath

Вопрос:

Я пытаюсь автоматизировать веб-таблицу на сайте demoqa https://demoqa.com/webtables где я собираюсь нажать кнопку редактирования и удаления для конкретного пользователя. Пожалуйста, найдите прилагаемый скриншот для справки.

Скриншот

Я пытаюсь нажать кнопку редактирования и удаления для пользователя ‘Cierra’, поэтому я создал настраиваемый XPath ‘// div[содержит (текст (),’cierra@example.com ‘)]//следующий::div[text()=’Insurance’]//следующий::div//div//span[@title=’Edit’]’

Попытка нажать кнопку редактирования и удаления с помощью содержит текст с электронной почтой ‘cierra@example.com «однако я вижу четыре результата, даже если я использую уникальное имя пользователя. Может ли кто-нибудь помочь мне с этим?

Ответ №1:

 (//div[contains(text(),'cierra@example.com')]//following::div[text()='Insurance']//following::div//div//span[@title='Edit'])[1]
 

вы можете заключить результат в скобки и вызвать [1] , чтобы получить первый:

Но вам не нужно усложнять это, просто получите электронное письмо, затем вернитесь к родительскому и получите span под этим родительским ,:

 //div[contains(text(),'cierra@example.com')]/..//span[@title="Edit"]
 

если вы все еще хотите использовать необычный локатор xpath, используйте :

 //div[contains(text(),'cierra@example.com')]/following-sibling::div[contains(text(),'Insurance')]/following-sibling::div//span[@title='Edit']