2015-10-09 3 views
0

Я создал массив с объектами, размер массива 10; на моей стадии тестирования мне нужно ввести все 10 элементов массива с объектами; все данные будут обновляться нажатием кнопки.массив первый элемент не печатается

it('22 should create 10 new leads with valid inputs', function(){ 

     asyncLoop({ 
      length : 10, 
      functionToLoop : function(loop, i){ 

       newLeadButton.click().then(function() { 
        expect(browser.getLocationAbsUrl()).toMatch('/create'); 

        firstNameField.sendKeys( leadArray2[i+1].firstName ); 
        lastNameField.sendKeys( leadArray2[i+1].lastName ); 
        meetingTimeField.sendKeys( leadArray2[i+1].meetingTime ); 
        emailField.sendKeys(  leadArray2[i+1].email  ); 
        mobileField.sendKeys(  leadArray2[i+1].mobileNumber); 
        phoneField.sendKeys(  leadArray2[i+1].phoneNumber ); 
        closeDateField.sendKeys( leadArray2[i+1].closeDate ); 
        address1Field.sendKeys( leadArray2[i+1].address1 ); 
        address2Field.sendKeys( leadArray2[i+1].address2 ); 
        cityField.sendKeys(  leadArray2[i+1].city  ); 

        createLeadButton.click().then(function() { 
         expect(browser.getLocationAbsUrl()).toMatch('/lead'); 
         expect(leadListElems.count()).toMatch(i+6); 
         loop(); 
        }); 
       }); 
      }, 
      callback : function(){ 
       expect(leadListElems.count()).toMatch(14); 
      }  

     }); 

    }); 
// http://stackoverflow.com/questions/4288759/asynchronous-for-cycle-in-javascript 
    var asyncLoop = function(o){ 
     var i=-1; 

     var loop = function(){ 
      i++; 
      if(i==o.length){o.callback(); return;} 
      o.functionToLoop(loop, i); 
     } 
     loop();//init 
    } 

Проблема в этом коде является то, что мой первый элемент массива не печатается, и я требую помощь в печати всех элементов массива 10 с их объектами.

var leadArray2=[ 


     { 
      firstName  : '1', 
      lastName  : '1', 
      meetingTime : '01/12/2016 10:00 am', 
      email   : '[email protected]', 
      mobileNumber : '', 
      phoneNumber : '7894561230', 
      closeDate  : '01/01/2018', 
      address1  : 'Address Line 1 A', 
      address2  : 'Address Line 1 B', 
      city   : 'City 1' 
     }, 
     { 
      firstName  : '2', 
      lastName  : '2', 
      meetingTime : '02/12/2016 11:00 am', 
      email   : '[email protected]', 
      mobileNumber : '9876543211', 
      phoneNumber : '7894561231', 
      closeDate  : '02/01/2017', 
      address1  : 'Address Line 2 A', 
      address2  : 'Address Line 2 B', 
      city   : 'City 2' 
     }, ...................]; 
+3

Вы вызываете 'o.functionToLoop (цикл, я)', где 'Я = 0', и вы получаете 'leadArray2 [i + 1]', поэтому вы получаете элемент 1, а не 0. – jjimenez

+1

@jjimenez Я думаю, вы можете разместить его в качестве ответа. – alecxe

+0

@alexcxe Done :) – jjimenez

ответ

0

Вы звоните o.functionToLoop(loop, i);, где i = 0 и вы получаете leadArray2[i+1], так что вы получаете элемент 1, а не 0.

+0

Простая ошибка, сделанная мной. спасибо всем за ваш ответ –

Смежные вопросы