首页 文章

如何定位web元素(Xpath:多个条件)

提问于
浏览
1

我试图用XPath找到一个特定的元素(对于我在Python中使用Selenium模块工作的脚本) . 我在互联网上查了一下,但我无法找到解决问题的方法,即:

有一个由许多'tr'组成的表 . 每个'tr'由共享同一类的几个'td'组成(即:“Zelle”) . 我想找一个满足两个条件的'tr' . 首先,它必须在一个td中包含文本“auto”,然后它必须在另一个td中包含文本“Abge” - 最后它必须包含“Tabelle”类的“a”元素 .

我写了这样的东西:

("//tr//td[@class='Zelle'][contains(.,'auto')]//following::td[@class='Zelle'][contains(.,'Abge')]//following::a[@class='Tabelle']")

但是当我在开发者控制台中尝试它时,我得到所有包含“auto”的td(即使第二个td不包含“Abge”) . 如何编写只返回“auto”和“Abge”的语句?

示例HTML:

<tr>
<td class="Zelle">auto</td>
<td class="Zelle">Abge</td>
<td class="Zelle">Some characters</td>
<td class="Zelle">
<a class="Tabelle" href="blablahblah.aspx?xxxx=Number"></a></td>
</tr>
<tr>
<td class="Zelle">auto</td>
<td class="Zelle">Abge</td>
<td class="Zelle">Some characters</td>
<td class="Zelle">
<a class="Tabelle" href="blablahblah.aspx?xxxx=Number"></a></td>
</tr>
<tr>
<td class="Zelle">auto</td>
<td class="Zelle">Some text(but no "Abge")</td>
<td class="Zelle">Some characters</td>
<td class="Zelle">
<a class="Tabelle" href="blablahblah.aspx?xxxx=Number"></a></td>
</tr>
<tr>
<td class="Zelle">some text (but not "auto")</td>
<td class="Zelle">Abge</td>
<td class="Zelle">Some characters</td>
<td class="Zelle">
<a class="Tabelle" href="blablahblah.aspx?xxxx=Number"></a></td>
</tr>

1 回答

  • 1

    尝试在XPath下面使用

    //tr[td[contains(., "auto")] and td[contains(., "Abge")] and .//a[@class="Tabelle"]]
    

相关问题