Что такое XPath для следующего элемента? - PullRequest
0 голосов
/ 11 февраля 2019

Мне нужно найти XPath для следующего элемента ниже:

<a> href="/resident/register/">Register another device </a>

Я предполагал, что решение будет

$x("//*[contains(@href, 'resident/register')]")

Но это ничего не вернуло.Есть идеи?

Ответы [ 2 ]

0 голосов
/ 11 февраля 2019

Чтобы начать с @kjhughes, одна из проблем с HTML т.е. HTML искажена , так как вы, должно быть, пытались предоставить правильный HTML из вашего понимания.

Фактический HTML Я полагаю, выглядит следующим образом:

<a href="/resident/register/">Register another device </a>

Таким образом, эффективный XPath для элемента может быть одним из следующих:

  • XPath: 1

    "//a[contains(@href, '/resident/register') and contains(.,'Register another device')]"
    
  • XPath: 2

    "//a[contains(@href, '/resident/register') and normalize-space()='Register another device']"
    
0 голосов
/ 11 февраля 2019

Ваш HTML-код искажен.

Измените

<a> href="/resident/register/">Register another device </a>

на

<a href="/resident/register/">Register another device </a>

, тогда ваш XPath будет работать должным образом.

Если вашHTML-код исправлен, и вам придется настроить XPath для проверки содержимого элемента, а не содержимого атрибута href:

//a[contains(.,'resident/register')]

, но, хотя это может выбрать некорректный элемент a, ононе будет кликабельным, поскольку в нем отсутствует правильный атрибут href.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...