1

我正在使用我的实习生功能测试中的一组按钮,我希望能够按顺序对每个按钮进行测试。我的页面看起来像下面这样:实习生功能测试 - 在一组中按顺序点击按钮

<input type="button" text="Button 1" class="myBtn">  
<input type="button" text="Button 2" class="myBtn">  
<input type="button" text="Button 3" class="myBtn">  

而且我的测试如下:

return remote 
    .findAllByClassName('myBtn') 
     .then(function(btns) { 
      var btn1 = btns[0]; 
      return btn1; 
     }) 
     .click() 
     .end() 
     .then(function(btns) { 
      var btn2 = btns[1]; 
      return btn2; 
     }) 
     .click() 
     .end() 
     .then(function(btns) { 
      var btn3 = btns[2]; 
      return btn3; 
     }) 
     .click() 
     .end() 
    .end() 

什么是做这种类型的使用实习生迭代测试的正确方法?

回答

0

您可以使用基本的递归调用遍历每个序列返回按钮,然后点击他们:

return remote 
    .findAllByClassName('myBtn') 
    .then(function (buttons) { 
    var i = -1; 

    function next() { 
     var button = buttons[++i]; 
     return button ? button.click().then(next) : null; 
    } 

    return next(); 
    }) 
    .end(); 
+0

有趣的想法,似乎运作良好...是有一个原因一个简单的for循环在这种情况下不起作用? – emroc

+0

由于呼叫是异步的。 –