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]