Puppeteer 中文文档v25.8.0

浏览器管理

通常,你通过启动连接浏览器来开始使用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();

浏览器上下文

如果需要隔离自动化任务,请使用浏览器上下文。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() 不会关闭浏览器或关闭任何页面。