如何在Nightwatchjs中使用循环

时间:2018-05-27 12:03:45

标签: javascript loops selenium automated-tests nightwatch.js

老实说,我是自动化js和nightwatchjs的新手,但是在nightwatchjs中创建循环存在问题。 任务是在元素不可见时单击按钮,单击后可以随机显示。所以,我正在努力解决这个问题,如何在nightwatchjs中添加while循环代码,因为我的愿景如何解决这个问题就是一个循环,例如:

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

我尝试使用此nightwatch js while loop但没有帮助,这是一个错误“运行clickUntilNotVisible命令时出错:browser.waitUntil不是函数” 也许有可能在没有循环的情况下使用更好的方法,但我没有找到任何东西。

2 个答案:

答案 0 :(得分:0)

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

使用this您应该能够检查您的元素并提交点击,直到它出现在您想要的任何时间间隔内。请注意,如果它永远不会显示,则永远不会停止执行,因此您可能还需要使用setTimeout并慷慨地延迟清除间隔或未通过测试。

答案 1 :(得分:0)

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

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

为我工作。希望这会有所帮助。

欢呼