<td>
<a>SAMPLE</a>
<div>
<small>Phase:
Planning >>
<a>Performance</a>
</small>
</div>
</td>
我試圖找到與上述「階段:規劃>>性能」文本的元素,但無濟於事。XPath定位元素使用文本()不工作
//small[contains(.,'Phase:')]
希望它會幫助你:)
<td>
<a>SAMPLE</a>
<div>
<small>Phase:
Planning >>
<a>Performance</a>
</small>
</div>
</td>
我試圖找到與上述「階段:規劃>>性能」文本的元素,但無濟於事。XPath定位元素使用文本()不工作
//small[contains(.,'Phase:')]
希望它會幫助你:)
目前現有的其他三個答案都不會完全符合您的要求。
這裏有一些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 . =。
試試下面:
嘗試使用Performance
屬於兩個不同的元素。
要找到Phase: Planning >>
元素,您可以使用
//small[contains(text(),'Phase:')]
,從而定位Performance
元素
//a[contains(text(),'Performance')]
注意在打印的第一個元素會給你兩種元素Phase: Planning >> Performance
的文本。
<span>Planning >></span>
試試這個代碼
文本Phase: Planning >>
和 - :
//*[text()[contains(normalize-space(.),'Phase: Planning >> Performance')]]
謝謝你爲我工作。非常感激! – rai