2017-04-06 115 views
0

我在页面上有一个Div元素用于显示错误消息。除非它被填充,否则这个div是不可见的。XPath文本或子节点

不幸的是,内容类型不一致。在某些情况下,它可以有一个直接的子文本节点,我可以拿起:

包含(文本(),“*”))

,或者它可以包含<span>包含它自己的子文本节点,我可以拿起:

// DIV/SPAN [包含(文本(), '*')]

虽然我会如T o,我无法改变这种行为。

例1

<div id="TopErrorMessageDiv">Error Message</div> 

例2

<div id="TopErrorMessageDiv"> 
    <span style="something">Error Message 1<br>Error Message 2</span> 
</div> 

幸运的是,我真的不需要知道的内容,我只需要知道如果该div非空。

任何人都可以帮我吗?

+1

你可以试试[布尔](https://开头developer.mozilla.org/en-US/docs/Web/XPath/Functions/boolean)xpath函数。如果存在节点,则返回true,例如'boolean(// div [@ id =“TopErrorMessageDiv”] // text())' – vold

回答

2

试试这个

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

匹配div包含任何文本内容

+0

这很有效,谢谢! – Jason

1

这应该为你工作,以及

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