javascript - Puppeteer.Iteration elementHandle 数组问题

标签 javascript async-await puppeteer

请帮助我达到预期的结果。 我将用文本填充页面上的每个输入字段:“123”。

let inputList = await page.$$('.form input');
inputList.map(async item => {
   await item.type('123');
});

预期结果 - 每个字段 123。

最后一个输入字段的实际结果 - 112233。

page.$$(selector) API

最佳答案

一般来说,您正在尝试迭代数组并对数组中的每个项目执行异步操作。您可以通过多种方式实现这一点,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

关于javascript - Puppeteer.Iteration elementHandle 数组问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48051709/

相关文章:

javascript - 具有编译功能和 ng-show 的 Angular 对话框指令不起作用

javascript - 如何使用 Nashorn 的 JSObject 进行字符串连接

javascript - 如何使用 Puppeteer 检查元素是否存在于 async/await 中

node.js - 如何在 NodeJS Express 中将下载的文件发送到客户端?

amazon-web-services - TestCafe 与 SAM Local 一起工作,但在 SAM Deploy 之后不工作

Javascript增量变量来更新表格单元格onclick

javascript - iframe src 与父域不同,未在 Safari MAC 和 iOS 设备中加载

c# - 如何在类构造函数/计时器回调中等待任务

c# - 我以为 await 继续与调用者在同一个线程上,但似乎没有

javascript - 获取 puppeteer 页面的默认超时设置