Как захватить содержимое div на основе текста внутри предыдущего div - PullRequest
0 голосов
/ 04 декабря 2018
<div class="field field-name-field-entry-level field-type-text field-label-above">
      <div class="field-label">Entry level</div>
    <div class="field-items">
    <div class="field-item">
              <div class="">Level 1</div>

Я пытаюсь взять текст «Уровень 1», основываясь на приведенном выше div с надписью «Уровень входа».

Я пытаюсь использовать варианты:

//div[@class='field-label'][text()='Entry Level']/following-sibling::div[2]

Но, кажется, по какой-то причине не могу его схватить.

Ответы [ 2 ]

0 голосов
/ 04 декабря 2018

Вы можете попробовать это

# for exact match
//div[text()='Entry level']/following-sibling::*/div/div
//div[@class='field-label' and text()='Entry level']/following-sibling::*/div/div
(//div[@class='field-label' and text()='Entry level']/following-sibling::*//div)[2]

# for contain
//div[contains(text(),'Entry level')]/following-sibling::*/div/div
0 голосов
/ 04 декабря 2018

Это потому, что вы ищете «начальный уровень», а не «начальный уровень», и мне пришлось изменить текст, идентифицирующий деталь на «содержащий», чтобы заставить его работать, а также индекс Div:

//div[@class='field-label'][contains(text(),'Entry level')]/following-sibling::div[1]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...