Puppeteer 中文文档v25.8.0

Browser 类

Browser 表示一个浏览器实例,它可以是以下两种方式之一:

Browser触发各种事件,这些事件在 BrowserEvent 枚举中有详细说明。

签名

export declare abstract class Browser extends EventEmitter<BrowserEvents>

继承自: EventEmitter<BrowserEvents>

备注

此类的构造函数被标记为内部方法。第三方代码不应直接调用构造函数,也不应创建继承 Browser 类的子类。

示例 1

使用 Browser 创建一个 Page

import puppeteer from 'puppeteer';

const browser = await puppeteer.launch();
const page = await browser.newPage();
await page.goto('https://example.com');
await browser.close();

示例 2

断开与 Browser 的连接并重新连接:

import puppeteer from 'puppeteer';

const browser = await puppeteer.launch();
// Store the endpoint to be able to reconnect to the browser.
const browserWSEndpoint = browser.wsEndpoint();
// Disconnect puppeteer from the browser.
await browser.disconnect();

// Use the endpoint to reestablish a connection
const browser2 = await puppeteer.connect({browserWSEndpoint});
// Close the browser.
await browser2.close();

属性

属性

修饰符

类型

说明

connected

readonly

boolean

Puppeteer 是否已连接到这个 browser

debugInfo

readonly

DebugInfo

(实验性) 从 Puppeteer 获取调试信息。

备注:

目前包含待处理的协议调用。未来我们可能会添加更多信息。

方法

方法

修饰符

说明

[asyncDisposeSymbol]()

[disposeSymbol]()

addScreen(params)

添加新屏幕,返回添加的屏幕信息对象

备注:

仅在无头模式下受支持。

browserContexts()

获取打开的浏览器上下文列表。

在新创建的 browser 中,此方法将返回 BrowserContext 的单个实例。

close()

关闭此 browser 及所有关联的 pages

cookies()

返回默认 BrowserContext 中的所有 Cookie。

备注:

browser.defaultBrowserContext().cookies() 的快捷方式。

createBrowserContext(options)

创建新的浏览器上下文

该上下文不会与其他浏览器上下文共享 Cookie/缓存。

defaultBrowserContext()

获取默认浏览器上下文

备注:

默认浏览器上下文无法关闭。

deleteCookie(cookies)

从默认 BrowserContext 中移除 Cookie。

备注:

browser.defaultBrowserContext().deleteCookie() 的快捷方式。

deleteMatchingCookies(filters)

从默认 BrowserContext 中删除与所提供的过滤器匹配的 Cookie。

备注:

browser.defaultBrowserContext().deleteMatchingCookies() 的快捷方式。

disconnect()

断开 Puppeteer 与此 browser 的连接,但保持进程继续运行。

extensions()

获取浏览器中已安装的所有扩展的映射,其中键是扩展 ID,值是相应的 Extension 实例。

getPWAState(options)

返回已安装的渐进式 Web 应用(PWA)的 OS 集成状态,例如其徽标计数和已注册的文件处理器。

备注:

仅在管道连接上可用。参见 Browser.installPWA()。仅对当前已安装的应用有意义;查询未知的 manifest id 会被拒绝。

getWindowBounds(windowId)

获取指定窗口的 bounds

installExtension(path, options)

安装扩展并返回 ID。

installPWA(options)

安装渐进式 Web 应用(PWA)并返回其 manifest id。

备注:

仅在通过管道连接连接到浏览器时可用。在 puppeteer.launch 中设置 pipe: true;该启动选项默认为 false。底层 PWA CDP 域不会通过 WebSocket 连接暴露。

返回的 manifest id 与 InstallPWAOptions.manifestId 一致,因此可以直接传递给 Browser.launchPWA()Browser.getPWAState()Browser.uninstallPWA()

launchPWA(options)

启动已安装的渐进式 Web 应用(PWA),并解析出支撑应用窗口的 page

备注:

仅在管道连接上可用。参见 Browser.installPWA()

PWA.launch 会解析出所启动的 _tab_ 目标的 id。Puppeteer 不会通过 Browser.targets() 暴露标签页目标;此方法改为解析出该标签页的子页面目标(应用的网页内容)。如果 Chromium 聚焦到已存在的应用窗口,此方法将返回该窗口现有的页面。

newPage(options)

默认浏览器上下文中创建新的 page

pages(includeAll)

获取此 Browser 中所有打开的 pages 的列表。

如果有多个浏览器上下文,此方法将返回所有浏览器上下文中的所有 pages

备注:

不可见的 pages(例如 "background_page")不会列在这里。你可以使用 Target.page() 找到它们。

process()

获取关联的 ChildProcess

removeScreen(screenId)

移除屏幕。

备注:

仅在无头模式下受支持。如果指定了主屏幕 id,则会失败。

screens()

获取屏幕信息对象列表。

setCookie(cookies)

在默认 BrowserContext 中设置 Cookie。

备注:

browser.defaultBrowserContext().setCookie() 的快捷方式。

setPermission(origin, permissions)

在默认 BrowserContext 中为特定源设置权限。

备注:

browser.defaultBrowserContext().setPermission() 的快捷方式。

setWindowBounds(windowId, windowBounds)

设置指定窗口的 bounds

target()

获取与默认浏览器上下文关联的 target)。

targets()

获取所有活动的 targets

如果有多个浏览器上下文,此方法将返回所有浏览器上下文中的所有 targets

uninstallExtension(id)

卸载扩展。

uninstallPWA(options)

卸载先前安装的渐进式 Web 应用(PWA)。

备注:

仅在管道连接上可用。参见 Browser.installPWA()

userAgent()

获取此浏览器的原始用户代理。

Pages 可以使用 Page.setUserAgent() 覆盖用户代理。

version()

获取表示此浏览器的名称和版本的字符串。

对于无头浏览器,此字符串类似于 "HeadlessChrome/61.0.3153.0"。对于非无头或新版无头浏览器,此字符串类似于 "Chrome/61.0.3153.0"。对于 Firefox,此字符串类似于 "Firefox/116.0a1"

Browser.version() 的格式可能会随浏览器的未来版本而改变。

waitForTarget(predicate, options)

等待与给定 predicate 匹配的 target 出现并返回它。

此方法将查看所有打开的浏览器上下文

wsEndpoint()

获取用于连接此 browser 的 WebSocket URL。

这通常与 Puppeteer.connect() 一起使用。

你可以从 http://HOST:PORT/json/version 中找到调试器 URL(webSocketDebuggerUrl)。

有关更多信息,请参阅浏览器端点

备注:

格式始终为 ws://HOST:PORT/devtools/browser/<id>