如何查找网络元素(Xpath:多个条件)

时间:2018-07-04 14:22:44

标签: python selenium xpath

我正在尝试使用XPath定位特定元素(对于我使用Selenium模块在Python中处理的脚本)。我在互联网上进行了查找,但是找不到解决我问题的方法,即:

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

我写了这样的东西:

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

但是当我在开发人员控制台中尝试时,我得到的所有带有td的tr都包含“ auto”(即使第二个td不包含“ Abge”)。

如何编写只返回带有“ auto”和“ Abge”的tr的语句?

示例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 个答案:

答案 0 :(得分:1)

尝试在XPath以下使用

join DSC in ctx.DocSubClasses on new { D.DocSubClass, DC.ID } equals new { DSC.ID, DSC.DocClassID}