Nightwatch.js 中的 Xpath

Dev*_*nik 2 css xpath nightwatch.js

我有这个结构

<div class ="wg-block">
  ...
    <h4 class ="number" >
       "Text"
Run Code Online (Sandbox Code Playgroud)

我必须确保带有文本“text”的元素 h4 在 div 中。我试试这个:

 .useXpath()
 .waitForElementVisible('/div[contains(@class, "wg-block")]/h4[text()="Text"]',1000)
Run Code Online (Sandbox Code Playgroud)

但有一个错误。如何正确确定此元素的可见性?

And*_*son 5

尝试更换

'/div[contains(@class, "wg-block")]/h4[text()="Text"]'
Run Code Online (Sandbox Code Playgroud)

'//div[@class = "wg-block"]//h4[normalize-space(text())="Text"]'
Run Code Online (Sandbox Code Playgroud)

请注意,开始/适用于root元素(是html,但不是div),也/意味着直接子元素。所以/div/h4意味着h4which 是root元素的直接子元素div

您应该使用//div//h4来匹配位于某处的h4哪个后代divDOM

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

<h4>
    Text
</h4>
Run Code Online (Sandbox Code Playgroud)

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