XPath 文本或子节点
XPath Text or Child Node
我在页面上有一个 Div 元素,用于显示错误消息。这个 div 是不可见的,除非它被填充。
很遗憾,内容类型不一致。在某些情况下,它可以有一个直接的子文本节点,我可以选择:
contains(text(),'*'))
或者它可以包含一个 <span>
,其中包含它自己的子文本节点,我可以通过以下方式获取:
//div/span[contains(text(),'*')]
尽管我很想改变这种行为。
示例 1:
<div id="TopErrorMessageDiv">Error Message</div>
示例 2:
<div id="TopErrorMessageDiv">
<span style="something">Error Message 1<br>Error Message 2</span>
</div>
幸运的是,我真的不需要知道内容,我只需要知道 div 是否非空。
谁能帮帮我?
试试这个
//div[@id="TopErrorMessageDiv" and .//text()]
匹配包含任何文本内容的div
这应该也适合你
//div[@id="TopErrorMessageDiv" and string-length(text()) > 0]
我在页面上有一个 Div 元素,用于显示错误消息。这个 div 是不可见的,除非它被填充。
很遗憾,内容类型不一致。在某些情况下,它可以有一个直接的子文本节点,我可以选择:
contains(text(),'*'))
或者它可以包含一个 <span>
,其中包含它自己的子文本节点,我可以通过以下方式获取:
//div/span[contains(text(),'*')]
尽管我很想改变这种行为。
示例 1:
<div id="TopErrorMessageDiv">Error Message</div>
示例 2:
<div id="TopErrorMessageDiv">
<span style="something">Error Message 1<br>Error Message 2</span>
</div>
幸运的是,我真的不需要知道内容,我只需要知道 div 是否非空。
谁能帮帮我?
试试这个
//div[@id="TopErrorMessageDiv" and .//text()]
匹配包含任何文本内容的div
这应该也适合你
//div[@id="TopErrorMessageDiv" and string-length(text()) > 0]