请帮助我达到预期的效果。 我将使用文本填充页面上的每个输入字段:'123'。
let inputList = await page.$$('.form input');
inputList.map(async item => {
await item.type('123');
});
预期结果 - 每个领域123个。
实际结果 - 最后一个输入栏位上的112233。
答案 0 :(得分:1)
从一般意义上讲,您正在尝试迭代数组并对数组中的每个项执行异步操作。您可以通过多种方式实现,for ... of
循环是单向的。如果您不想循环但是想要迭代,您可以这样做:
await inputList.reduce(async (previousVal, currentVal) => {
await previousVal; // wait for the promise returned by the previous asynchronous call
return currentVal.type('123'); // call the next elementHandle in the array
}, Promise.resolve()); // the initial value that is passed to the callback function