有一个页面包含一些html:
<ul>
<li>
<div>
text1
</div>
<span>
text2
</span>
</li>
</ul>
而且我想逐字逐句地找到 li . 如果我想用xpath找到它:
“// * [contains(text(),'text1')] / ancestor :: li”
- 元素成立并且这些文本相同
“text1 \ r \ n \ text2”
但如果我正在尝试找到它
[contains(text(),'text1 \ r \ n \ text2')] / ancestor :: li“
没有成立的元素 . 我尝试在xpath之前使用@,如:“@ [contains(text(),'text1 \ r \ n \ text2')] / ancestor :: li”
但也没有结果 . 我应该找到全文的元素 . 因为我不知道 Span 会是什么,div会是什么 . 我不明白为什么element.Text =“text1 \ r \ n \ text2” . 但是xpath“[contains(text(),'text1 \ r \ n \ n \ n \ n \ n \ n \文字'')]”“不起作用 . 你有什么建议或意见吗?我很高兴看到谢谢你
3 回答
您可能需要为li执行子查询并测试子项 . 因此,以下内容适用于上述场景:
这将匹配所有
li
谁拥有包含text1的div
元素以及包含text2的span
元素 .你可以使用normalize-space,我想它也适合你的情况:
尝试以下XPath来选择所需的元素: