我有这个结构
<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
匹配h4
这是div
的后代位于 DOM
中的某处
text()="Text"
可以应用于匹配元素 <h4>Text</h4>
,
但是如果你想匹配
<h4>
Text
</h4>
您需要去掉空格和换行符。在这种情况下,您可以使用 normalize-space(text())
方法或 contains(text(), "Text")
关于css - Nightwatch.js 中的 Xpath,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42697261/