如何在 Nightwatchjs 中使用循环

How to use a loop in Nightwatchjs

老实说,我是 automation js 和 nightwatchjs 的新手,但是在 nightwatchjs 中创建循环存在问题。 任务是在元素不可见时单击按钮,单击后它可以随机变为可见。所以,我正在纠结这个问题,如何在 nightwatchjs 的代码中添加 while 循环,因为我设想如何解决这个问题是一个循环,例如:

while(check for element)
.click('[Our_Button]')

我尝试使用这个 nightwatch js while loop 但没有帮助,这是一个错误 "Error while running clickUntilNotVisible command: browser.waitUntil is not a function" 也许可以在没有循环的情况下使用更好的方法,但我没有找到任何东西。

您可以尝试使用 setIntervalclearIntervalread about them heresetInterval 接受一个函数参数和一个延迟参数,并且将在每次指定的延迟间隔过去时执行该函数。您甚至可以这样做,以便在满足您的条件时,间隔将自行清除 as described in this stack overflow answer.

使用 this 您应该能够检查您的元素并提交点击,直到它出现在您想要的任何时间间隔。请注意,如果它永远不会变得可见,这将永远不会停止执行,因此您可能还想使用 setTimeout 并有足够的延迟来清除您的间隔或使测试失败。

您可以使用 .perform() 方法,并从内部创建一个函数。像这样:

this.api.perform(function (browser, done){
  while (condition) {
    //code block                     
  }
  done();
})

适合我。希望这有帮助。

干杯