Как проверить href элемента, найденного с помощью xpath, содержит text () - PullRequest
0 голосов
/ 01 июля 2019

Я пытаюсь найти элемент по тексту, который он содержит, а затем проверить, что этот элемент также имеет ссылку на определенное место.Я использую селен / Java.

Я пытаюсь найти элементы по тексту, когда могу, чтобы минимизировать, сколько изменений мне нужно будет сделать, если пользовательский интерфейс будет обновлен (уменьшите затраты на обслуживание теста).

Я попробовал следующее, но завершение не выполнено, так как getAttribute заканчивается нулем.

WebElement newsHeadlineTemplate = driver.findElement(By.xpath("//*[contains(text(), 'News Headline')]"));
Assert.assertEquals("Template not clickable", "/news/create/new", newsHeadlineTemplate.getAttribute("href"));

HTML для элемента, который я пытаюсь найти / использовать:

<div class="columns">
   <div class="column is-one-third">
      <p>News Headline</p>
      <a href="/news/create/new"></a>
   </div>
</div>

Я все еще новичок в селене, поэтому любая помощь очень ценится.

1 Ответ

1 голос
/ 01 июля 2019

Ваш XPath-селектор немного ошибочен, вы соответствуете <p> тегу , и вам необходимо соответствовать <a> тегу , который является следующим- брат для тега <p>.

Так что вам нужно изменить свое выражение так:

//p[text()='News Headline']/following-sibling::a

Дополнительная информация:

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