我想使用XPath选择元素[@class='title']
<span class="title">Private Area</span>
<span class="title"><mark>Ablage für Tests</mark></span>
<span class="title">Zweite <mark>Ablage für Tests</mark></span>
对于三个示例(其中文本可以更改),我都需要一个XPath。我尝试了//*[@class='title'][text()='TEXT']
->仅适用于第一个示例,不适用于其他示例。
答案 0 :(得分:1)
我要去:
//span[@class='title']/descendant-or-self::*[text()='SOME TEXT']
这将找到span元素,然后在树上进行查找以查找具有与指定文本匹配的文本节点的元素。
您遇到的问题是,在示例2和3中,以下两种方法均适用:
//span[@class='title']/descendant-or-self::*[text()='Ablage für Tests']
您可以通过
解决此问题(//span[@class='title']/descendant-or-self::*[text()='Ablage für Tests'])[1]
(//span[@class='title']/descendant-or-self::*[text()='Ablage für Tests'])[2]
请记住,文本节点属于特定元素,text()
不是一组元素的文本。
我也不清楚您要查找哪个元素,上面的假设是您希望该元素包含指定的文本。相反,如果您正在寻找span元素,则可以将XPath修改为:
//span[@class='title'][descendant-or-self::*[text()='SOME TEXT']]
答案 1 :(得分:1)
尝试以下xpath。只需更改要获取的文本即可。
"//span[@class='title'][contains(.,'" + TEXT + "')]"