【发布时间】:2020-12-18 14:41:05
【问题描述】:
我正在使用 for-Each 循环将从 MongoDb 获得的值传递给 NodeJS Puppeteer 中的参数。
这是 for-Each 循环
dataGood = [{title: "username1", password: "password2"},{title: "username1", password: "password2"}]
await dataGood.forEach(async element => {
let title = element.title;
let pass = element.password;
let tags = element.tags;
let actions = element.actions;
await ig.initialize();
await ig.login(title, pass);
await ig.liketagsprocess(tags, actions);
如果dataGood 中有单个数据,则此代码可以正常工作。
但是如果有 2 个或更多的值,它就不起作用了。
这是数据传递的地方
initialize: async() => {
instagram.browser = await puppeteer.launch({
headless: false,
});
instagram.page = await instagram.browser.newPage();
},
login: async(username , password) => {
console.log(username, password)
await instagram.page.goto(BASE_URL, {waitUntil: 'load', timeout: 0});
await instagram.page.waitForSelector('input[name="username"]');
await instagram.page.type('input[name="username"]', username, {delay: 100});
await instagram.page.type('input[name="password"]', password, {delay: 100});
Console Log : // Suppose usernames are username 1 and Username 2
username1 password1
username2 password2
木偶师的主要问题是如何出现的。
dataGood 的for-each 循环打开了2 puppeteer windows。
两个独立的铬窗口打开。就会发生这种错误。
请参考这些图片。
这些不是同一个铬窗口的标签,而是完全不同的窗口
如何循环访问参数,以便它们在各自的 puppeteer 窗口中单独工作。
【问题讨论】:
标签: node.js for-loop parameter-passing puppeteer