XPath文本或子节点

时间:2017-04-06 12:01:42

标签: html xpath contains

我在页面上有一个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是否为空。

任何人都可以帮助我吗?

2 个答案:

答案 0 :(得分:2)

试试这个

//div[@id="TopErrorMessageDiv" and .//text()]

匹配包含任何文字内容的div

答案 1 :(得分:1)

这对你也有用

//div[@id="TopErrorMessageDiv" and string-length(text()) > 0]