每次都重新创建一个浏览器实例,是一个非常昂贵的操作,可以使用不同的浏览器环境(context)共享同一个实例,不同的浏览器环境之间相互隔离。
当创建一个浏览器实例时,会创建默认的浏览器环境,可以根据需要创建新的浏览器环境:
const puppeteer = require('puppeteer');
(async () => {
const browser = await puppeteer.launch();
// 获取默认浏览器环境的引用
const defaultContext = browser.defaultBrowserContext();
console.info(defaultContext.isIncognito()); // False
// 创建一个新的浏览器环境
const newContext = await browser.createIncognitoBrowserContext();
console.info(newContext.isIncognito()); // True
// 关闭创建的浏览器环境
await newContext.close();
// 使用默认环境关闭浏览器
await browser.close();
})();
对于某个浏览器环境,可以进行特定设置,例如,授予不同权限。
默认浏览器环境只能通过关闭浏览器实例关闭。关闭浏览器时,将关闭所有该实例上的浏览器环境。