Как я могу выбрать элемент HTML по внутреннему тексту? - PullRequest
0 голосов
/ 20 сентября 2018

Например, у меня есть такая структура:

<div>
  GLaDOS 
  <div>
    is a fictional artificially intelligent computer system 
  </div>
  from the video game series 
  <div>
    Portal
  </div>
</div>

<div>
  from the video game series 
  <div>
    is a fictional artificially intelligent computer system 
  </div>
  123 
  <div>
    Portal
  </div>
</div>

И я хочу выбрать элемент, который содержит «из серии видеоигр» между первым и вторым внутренним div.Как должно выглядеть выражение xpath?

Ответы [ 2 ]

0 голосов
/ 20 сентября 2018

Чтобы выбрать элемент div, содержащий текст из серии видеоигр , вы можете использовать выражение XPath //div[contains(., 'from the video game series')]".

Чтобы ограничить этот выбор текстом междупервый и второй div ребенок, попробуйте следующее: //div[contains(text()[count(preceding-sibling::div) = 1 and count(following-sibling::div) > 0], 'from the video game series')].

0 голосов
/ 20 сентября 2018

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

//text()[contains(., 'from the video game series')][preceding-sibling::div and following-sibling::div]

Вы можете проверить его здесь .

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