如何使用 xpath 相对于通过 innerText 识别的另一个元素定位一个元素

How to locate an element with respect to another element identified through innerText using xpath

我有这样的结构:

<ul> 
 <div class="someclass"> 
  <li>  
    <img/> 
    <img/>
    <a> <span> Text 1 </span> <a/>
  </li>
  <li>  
    <img/> 
    <img/>
    <a> <span> Text 2 </span> <a/>
  </li>
 </div>
<ul/>

我想搜索 "Text 2" 并返回到其中的第一个“<img />”,我不能再继续 //div[@class='someclass']/li//following-sibling::a/span[text()='Text 2']

您可以到达 "Text 2",然后您可以使用 precedinga[1] 来获得 "Text 1"。
你的 xpath 应该是这样的:

//a[contains(text(),'Text 2')]//preceding::a[1]

要搜索文本为 Text 2 的元素并引用它来定位第一个 <img/> 标记,您可以使用以下 基于解决方案:

  • xpath:

    "//div[@class='someclass']//li//a/span[normalize-space()='Text 2']//preceding::img[2]"