<td>
<a>SAMPLE</a>
<div>
<small>Phase:
Planning >>
<a>Performance</a>
</small>
</div>
</td>
我试图用上面的“phase:planning>>performance”文本来定位元素,但没有成功。
尝试使用:
//*[text()[contains(normalize-space(.),'Phase: Planning >> Performance')]]
最佳答案
目前存在的其他三个答案都不能完全满足你的要求。
下面是一些xpath表达式:
您可以选择其规范化字符串的small
元素
值通过这个xpathPhase: Planning >> Performance
:
//small[normalize-space() = 'Phase: Planning >> Performance']
您可以选择所有元素,无论其名称
规范化字符串值等于目标字符串:
//*[normalize-space() = 'Phase: Planning >> Performance']
但这不仅会选择
small
,而且还会选择div
,因为字符串值等于
Phase: Planning >> Performance
。您只能选择层次结构中的最低元素,而不管
其规范化字符串值等于目标字符串的名称:
//*[ normalize-space() = 'Phase: Planning >> Performance' and
not(.//*[normalize-space() = 'Phase: Planning >> Performance'])]
必须认识到XPath text() = is different than XPath . =。