2017-04-06 233 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]