Найти элементы только после определенного текста в html, используя селен python - PullRequest
0 голосов
/ 02 июня 2018

Допустим, у меня есть следующий HTML-код

<div class="12"> 
  <div class="something"></div> 
</div>
<div class="12"> 
  <div class="34"> 
    <span>TODAY</span> 
  </div>
</div> 
<div class="12"> 
  <div class="something"></div> 
</div> 
<div class="12"> 
  <div class="something"></div> 
</div>

Теперь Если я использую driver.find_elements_by_class_name("something"), тогда я получу все классы, присутствующие в коде HTML.Но я хочу получить классы только после определенного слова («Сегодня») в HTML.Как исключить классы, которые появляются перед конкретным словом.Следующие div и классы могут быть на любом уровне.

1 Ответ

0 голосов
/ 02 июня 2018

Вы можете использовать поиск по XPath, как показано ниже:

driver.find_elements_by_xpath('//*/text()[.="some specific word"]/following-sibling::div[@class="something"]')

Обратите внимание, что вам могут потребоваться некоторые модификации в случае, если ваш настоящий HTML отличается от предоставленного упрощенного HTML

Обновление

заменить following-sibling на following, если требуется div узлы не являются братьями и сестрами:

driver.find_elements_by_xpath('//*/text()[.="some specific word"]/following::div[@class="something"]')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...