跳到主要内容
版本:23.11.1

浏览器管理

通常,您开始使用 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() 不会关闭浏览器或关闭任何页面。