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 表示 h4root 元素 div 的直接子元素。

您应该使用 //div//h4 来匹配位于 DOM

某处的 div 的后代 h4

text()="Text" 可以应用于匹配元素 <h4>Text</h4>, 但是如果你想匹配

<h4>
    Text
</h4>

您需要去掉空格和换行符。在这种情况下,您可以使用 normalize-space(text()) 方法或 contains(text(), "Text")