我在页面上有一个Div元素,用于显示错误消息。除非已填充,否则此div是不可见的。
不幸的是,内容类型不一致。在某些情况下,它可以有一个直接的子文本节点,我可以选择:
包含(text(),' *'))
或者它可以包含<span>
,其中包含自己的子文本节点,我可以选择:
// DIV /跨度[含有(文本(),&#39; *&#39)]
尽我所能,我无法改变这种行为。
示例1 :
<div id="TopErrorMessageDiv">Error Message</div>
示例2 :
<div id="TopErrorMessageDiv">
<span style="something">Error Message 1<br>Error Message 2</span>
</div>
幸运的是,我真的不需要知道内容,我只需要知道div是否为空。
任何人都可以帮助我吗?
答案 0 :(得分:2)
试试这个
//div[@id="TopErrorMessageDiv" and .//text()]
匹配包含任何文字内容的div
答案 1 :(得分:1)
这对你也有用
//div[@id="TopErrorMessageDiv" and string-length(text()) > 0]