Nightwatch.js 中的 Xpath
Xpath in Nightwatch.js
我有这个结构
<div class ="wg-block">
...
<h4 class ="number" >
"Text"
我必须确保带有文本 "text" 的元素 h4 在 div 中。
我试试这个:
.useXpath()
.waitForElementVisible('/div[contains(@class, "wg-block")]/h4[text()="Text"]',1000)
但是有一个错误。
我怎样才能正确确定该元素的可见性?
尝试替换
'/div[contains(@class, "wg-block")]/h4[text()="Text"]'
和
'//div[@class = "wg-block"]//h4[normalize-space(text())="Text"]'
注意开始 /
适用于 root
元素(html
,而不是 div
)并且 /
表示直系子元素。所以 /div/h4
表示 h4
是 root
元素 div
的直接子元素。
您应该使用 //div//h4
来匹配位于 DOM
某处的 div
的后代 h4
text()="Text"
可以应用于匹配元素 <h4>Text</h4>
,
但是如果你想匹配
<h4>
Text
</h4>
您需要去掉空格和换行符。在这种情况下,您可以使用 normalize-space(text())
方法或 contains(text(), "Text")
我有这个结构
<div class ="wg-block">
...
<h4 class ="number" >
"Text"
我必须确保带有文本 "text" 的元素 h4 在 div 中。 我试试这个:
.useXpath()
.waitForElementVisible('/div[contains(@class, "wg-block")]/h4[text()="Text"]',1000)
但是有一个错误。 我怎样才能正确确定该元素的可见性?
尝试替换
'/div[contains(@class, "wg-block")]/h4[text()="Text"]'
和
'//div[@class = "wg-block"]//h4[normalize-space(text())="Text"]'
注意开始 /
适用于 root
元素(html
,而不是 div
)并且 /
表示直系子元素。所以 /div/h4
表示 h4
是 root
元素 div
的直接子元素。
您应该使用 //div//h4
来匹配位于 DOM
div
的后代 h4
text()="Text"
可以应用于匹配元素 <h4>Text</h4>
,
但是如果你想匹配
<h4>
Text
</h4>
您需要去掉空格和换行符。在这种情况下,您可以使用 normalize-space(text())
方法或 contains(text(), "Text")