javascript - 如何在 node.js 的异步函数中使用 for 循环?
问题描述
我正在尝试使用一堆 ID 登录网页。
我已经使用单个 id 创建了代码并且我的代码正在运行,但是我对如何在异步函数中引入循环感到震惊。
const puppeteer = require('puppeteer');
let scrape = async () => {
const browser = await puppeteer.launch();
const page = await browser.newPage();
await page.goto('URL');
const id=[IDs];
for(const i of id)
{
await page.$eval('#username', el => el.value = i);
await page.$eval('#password', el => el.value = 'PASSWORD');
await page.click('#loginbutton');
await page.waitFor(1000);
const result = await page.evaluate(() => {
let a=document.getElementById('signin-caption').innerText;
let b=document.getElementById('statusmessage').innerText;
if(b)
return b;
return a;
});
await console.log(result);
if(result.startsWith('You'))
break;
}
await browser.close();
return result;
};
scrape().then((value) => {
console.log(value);
});
收到以下错误:“UnhandledPromiseRejectionWarning:错误:评估失败:ReferenceError:我未定义”
解决方案
await page.$eval('#username', (el , i ) => el.value = i , i );
推荐阅读
- javascript - 如何使用highchart制作三角形进度条?
- regex - 正则表达式解析scala中两个字符串之间的行
- regex - 尝试查找 Gmail 路由设置可接受的正则表达式
- hadoop - 是否可以在单独安装 Hadoop 和少量其他组件的 RHEL7 服务器上安装 CDH
- javascript - 在弹出窗口中使用图标添加关闭按钮
- apache-kafka - 使用哪个队列?Kafka、RabbitMQ、Redis、SQS、ActiveMQ 或你的名字
- r - 我的包中的图像路径用于 R 标记
- c++ - 当我输入 0 到 70 之间的数字时,它会无限打印
- android - TabBar 具有圆形、可滚动和焦点在颤动的中心
- node.js - 如何编写 aeropike 服务文件以便在连接失败时重新连接?