Я создал массив с объектами, размер массива 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'
}, ...................];
Вы вызываете 'o.functionToLoop (цикл, я)', где 'Я = 0', и вы получаете 'leadArray2 [i + 1]', поэтому вы получаете элемент 1, а не 0. – jjimenez
@jjimenez Я думаю, вы можете разместить его в качестве ответа. – alecxe
@alexcxe Done :) – jjimenez