Skip to main content
 首页 » 编程设计

python之XPath:在另一个 DIV 中获取给定条件的文本

2025年05月04日20mengfanrong

我正在尝试从这样的结构中获取文本:

... 
  <div class="a"> 
    <div class="a"> 
      <div class="a"> 
        <div class="inner"> 
          <a> 
            <div class="a">...</div> 
            <div class="a">&gt;</div> 
            <div class="important class">Some interisting text</div> 
            <div class="a">...</div> 
          </a> 
          <a> 
            <div class="a"> 
              <button class="criterion A">...</button> 
            </div> 
          </a> 
        </div> 
      </div> 
    </div> 
  </div> 
  <div class="a"> 
    <div class="a"> 
      <div class="a"> 
        <div class="inner"> 
          <a> 
            <div class="a">...</div> 
            <div class="a"/> 
            <div class="important class">Some interisting text</div> 
            <div class="a">...</div> 
          </a> 
          <a> 
            <div class="a"> 
              <button class="criterion B">...</button> 
            </div> 
          </a> 
        </div> 
      </div> 
    </div> 
  </div> 
 
... 

我想要的是:
从具有 class="important class"的 div 获取文本的路径,该路径匹配 button 具有 class="B" 属性的条件。

当我使用 selenium 时,我尝试了类似下面的方法来检索 XPath 列表:

list_xpath = driver.find_elements_by_xpath('.//div[@class="importante class" and .//button[@class="cirterion B"]]') 

但它返回一个空列表。
要检索文本,我稍后会做:

for path in list_xpath: 
   print(path.text) 

给定另一个分支中的标准,获取这些文本的正确方法是什么?

请您参考如下方法:

试试这个 XPath:

//a[.//button[@class="cirterion B"]]/preceding-sibling::a//div[@class="importante class"]