我正在使用protractor和Jasmine进行测试。
假设我有一个异步的it函数。
it('something', async function(){
for(var k = 0; k < 5 ; k++){
(function(jj){
/...........
await something == whatever
............./
})(k);
}
})
我希望在for循环内使用await,但我无法这样做。
此外,我如何在protractor的each函数中使用async/await使代码更清晰?
it('something', async function(){
element.locator.each((x)=>{
await element.locator.sendKeys('something')
})
})
如果有人能帮忙,那就太棒了。现在我的整个测试规范看起来像一个充满了 Promise 和回调的大杂烩。
it('description', async function() {
common.separator()
console.log('***************************************')
console.log('something');
console.log('***************************************')
common.separator();
finished_ispresent = await common.finished.isPresent();
if( finished_ispresent == true) {
console.log('finished is present = ' + finished_ispresent);
common.separator();
}
common.somebutton.click();
await browser.sleep(1000);
//array declaration for storing boolean results
some_array =[];
some_array1 =[];
some_array2 =[];
some_array3 =[];
some_array4 =[];
//the outer for loop
for(var k = 0; k < 5 ; k++){
browser.wait(EC.visibilityOf(common.something),2000);
common.something.click();
Something_V = await common.something.get(k).getText();
browser.wait(EC.visibilityOf(common.something),5000);
common.something.click();
common.datepicker(k);
}
});
发生的情况是事情发生得太快,导致什么都不起作用,并返回一堆错误。
先生,我还有一个关于 .each 函数的疑问。在使用异步等待时如何处理每个函数?
it('something', function(){
element.all.locator.each((element_each)=>{
console.log(element_each);
})
});
你如何使用Each处理这个问题?