使用selenium python在html中的特定文本之后查找元素

时间:2018-06-02 15:29:46

标签: python selenium selenium-webdriver

假设我有以下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 :(得分:1)

您可以使用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"]')