<td>
<a>SAMPLE</a>
<div>
<small>Phase:
Planning >>
<a>Performance</a>
</small>
</div>
</td>
我试图找到元素&#34;阶段:规划&gt;&gt;性能&#34;上面的文字但没有用。
尝试使用:
//*[text()[contains(normalize-space(.),'Phase: Planning >> Performance')]]
答案 0 :(得分:3)
目前存在的其他三个答案都不会完全符合您的要求。
以下是一些XPath表达式:
您可以选择其标准化字符串的 small
元素
通过此XPath值为Phase: 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 . = 。
答案 1 :(得分:0)
尝试下面的内容: -
//small[contains(.,'Phase:')]
希望它会对你有所帮助:)。
答案 2 :(得分:0)
<span>Planning >></span>
试试这段代码
答案 3 :(得分:0)
文字Phase: Planning >>
和Performance
属于两个不同的元素。
要找到Phase: Planning >>
元素,您可以使用
//small[contains(text(),'Phase:')]
找到Performance
元素
//a[contains(text(),'Performance')]
请注意,打印第一个元素会为您提供两个元素Phase: Planning >> Performance
的文本。