【发布时间】:2021-01-31 17:29:44
【问题描述】:
我试图首先打开多个浏览器,每个浏览器都有一个页面,方法是重用一个页面对象。 然后我执行一些其他操作。 离开当前 Page 对象后,如何循环浏览这些打开的浏览器窗口? 我正在考虑拥有一组页面对象,或者为每个对象提取一些 ID 并以某种方式返回。谢谢
const puppeteer = require('puppeteer');
async function run () {
const url = 'http://www.example.com';
const browser = await puppeteer.launch({ headless: false });
const defaultContext = await browser.defaultBrowserContext();
const browserCount = 10;
for (let i = 0; i < browserCount; i++) {
const newContext = await browser.createIncognitoBrowserContext();
const page = await newContext.newPage();
await page.goto(url);
}
//Perform some other tasks
//Now loop back through the 10 open browser pages.
//Go to the first open browser window, pull data from the page
//Go to the next open browser window, pull data from page
}
run();
【问题讨论】:
-
您已经打开了 10 个页面,但是自从您在循环的每次迭代中声明并初始化
const page变量后,您还没有将它们存储在任何地方。因此,如果您丢失了对这些页面的引用,您将没有什么可回头的。我建议使用数组。
标签: loops object browser window puppeteer