浏览器管理
通常,您开始使用 Puppeteer 的方式是启动 启动 或 连接 到浏览器。
启动浏览器
import puppeteer from 'puppeteer';
const browser = await puppeteer.launch();
const page = await browser.newPage();
// ...
关闭浏览器
要优雅地关闭浏览器,请使用 browser.close()
方法
import puppeteer from 'puppeteer';
const browser = await puppeteer.launch();
const page = await browser.newPage();
await browser.close();
浏览器上下文
如果您需要隔离自动化任务,请使用 BrowserContexts。Cookie 和本地存储在浏览器上下文之间不共享。此外,您可以通过关闭上下文来关闭上下文中的所有页面。
import puppeteer from 'puppeteer';
const browser = await puppeteer.launch();
const context = await browser.createBrowserContext();
const page1 = await context.newPage();
const page2 = await context.newPage();
await context.close();
权限
您还可以为浏览器上下文配置权限
import puppeteer from 'puppeteer';
const browser = await puppeteer.launch();
const context = browser.defaultBrowserContext();
await context.overridePermissions('https://html5demos.com', ['geolocation']);
连接到正在运行的浏览器
如果您在 Puppeteer 之外启动了浏览器,可以使用 connect
方法连接到它。通常,您可以从浏览器输出中获取 WebSocket 端点 URL
const browser = await puppeteer.connect({
browserWSEndpoint: 'ws://127.0.0.1:9222/...',
});
const page = await browser.newPage();
browser.disconnect();
注意
与 browser.close()
不同,browser.disconnect()
不会关闭浏览器或关闭任何页面。