Xpath выбирает данные после тега <br/> - PullRequest
0 голосов
/ 14 мая 2018

У меня есть html:

<div class="sys_key-facts">
  <p>
   <strong>Full-time </strong>1 year<br>
   <strong>Part-time</strong> 2 years
  </p>
</div>

Я хочу получить значение неполного рабочего времени (после неполного рабочего дня), которое равно:

2 years</p>

Мой код Xpath:

//div[@class="sys_key-facts"]/p[strong[contains(text(), "Part-time")]][preceding-sibling::br]/text() 

но возвращается пустое.Пожалуйста, дайте мне знать, где я ошибаюсь.Спасибо

1 Ответ

0 голосов
/ 14 мая 2018

Проблема в том, что p[preceding-sibling::br] означает, что в абзаце есть брат-сестра с разрывом строки, в то время как br на самом деле является потомком p, а не братом

Так что вы можете обновить свой XPath как

//div[@class="sys_key-facts"]/p[strong[contains(text(), "Part-time")] and br]/text()[last()]

или попробуйте ниже XPath, чтобы получить требуемый вывод:

//div[@class="sys_key-facts"]//strong[.="Part-time"]/following-sibling::text()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...