自动化工具 活跃维护

puppeteer

puppeteer/puppeteer

适用于 Chrome 和 Firefox 的 JavaScript API

95672
Stars 标星
9590
Forks 分支
1203
Watchers 关注
272
Open Issues
TypeScript
主要语言
Apache-2.0
开源协议
1.50 GB
仓库大小
12 小时前
最后推送
一键安装扩展 / 插件指令
dsh plugin --profile web add github:puppeteer/puppeteer
git clone https://github.com/puppeteer/puppeteer.git
git clone git@github.com:puppeteer/puppeteer.git
README.md main

英文原文正文为项目原始 README(英文),本站后续会翻译为中文,当前仅剔除图片与无关章节并统一排版。

木偶操纵者

Puppeteer 是一个 JavaScript 库,提供了一个高级 API 用于控制
Chrome 或 Firefox 胜过
DevTools 协议 或 WebDriver BiDi。
Puppeteer 默认在无头模式(没有可见界面)下运行

入门 | API | 常见问题 | 贡献 | 故障排除

安装

npm i puppeteer # Downloads compatible Chrome during installation.
npm i puppeteer-core # Alternatively, install as a library, without downloading Chrome.

:::注意

现代包管理器(包括 npm(参见 RFC)、pnpm、Yarn、Bun 和 Deno)默认会阻止依赖安装脚本。如果安装脚本被阻止,Puppeteer 在安装过程中将不会下载浏览器,从而导致运行时错误。

安装后,您可以通过运行以下命令手动下载所需的浏览器:

npx puppeteer browsers install

或者,您可以配置您的包管理器以允许安装脚本运行(例如,对于 npm,可以在您的 package.json 中将 "puppeteer" 添加到 "allowScripts")。

:::

MCP

安装 chrome-devtools-mcp,这是一个基于 Puppeteer 的 MCP 服务器,用于浏览器自动化和调试。

Puppeteer 还支持实验性的 WebMCP API。

示例

import puppeteer from 'puppeteer';
// Or import puppeteer from 'puppeteer-core';

// Launch the browser and open a new blank page.
const browser = await puppeteer.launch();
const page = await browser.newPage();

// Navigate the page to a URL.
await page.goto('https://developer.chrome.com/');

// Set the screen size.
await page.setViewport({width: 1080, height: 1024});

// Open the search menu using the keyboard.
await page.keyboard.press('/');

// Type into search box using accessible input name.
await page.locator('::-p-aria(Search)').fill('automate beyond recorder');

// Wait and click on first result.
await page.locator('.devsite-result-item-link').click();

// Locate the full title with a unique string.
const textSelector = await page
  .locator('::-p-text(Customize and automate)')
  .waitHandle();
const fullTitle = await textSelector?.evaluate(el => el.textContent);

// Print the full title.
console.log('The title of this blog post is "%s".', fullTitle);

await browser.close();
本站来源与版权声明
  • 本文标题:puppeteer - 适用于 Chrome 和 Firefox 的 Jav
  • 本文链接:https://www.cn121.com/automation/puppeteer-puppeteer.html
  • 原项目:puppeteer/puppeteer 版权归原作者 puppeteer 及贡献者所有
  • 收录信息:本站于 2026-10-10 收录本项目,本页所列协议与仓库指标均为收录当时的状态;该日期之后原项目的版本更新与协议变更,本页不作同步。
  • 开源协议:收录时本项目采用 Apache-2.0(查看 LICENSE 原文),本站转载其原始文档(未改动文字,仅剔除图片与无关章节);使用、修改、分发请以该仓库 LICENSE 原文为准。本站对原文仅作排版与图片地址适配, 并保留原项目的 NOTICE 与署名要求。
  • 站点出处:本文首发于 OneTwoOne,收录自 GitHub 开源项目 puppeteer/puppeteer。
  • 内容说明:本页正文为原项目 README 原文(英文),本站后续会翻译为中文(当前尚未译出,仅将二级标题译为中文,便于按栏目定位;标题原文可在下方原仓库中查看),仅剔除了图片与赞助等无关章节、并把相对链接改为绝对地址;页首简介为机器翻译自仓库描述。
  • 引用声明:商业转载、第三方聚合或 AI 检索训练引用时,请务必保留以上来源出处、本文永久链接,以及原项目的版权声明与许可信息。
  • 下架通道:若原项目此后变更或收紧了许可协议、或作者/权利人认为本站的收录方式(译文、排版适配、简介翻译等)超出其授权范围,请通过 xyd3302001@163.com 发送下架通知,并附上项目地址与本页链接。本站核实后将第一时间删除本页内容,或改为不复制原文的目录性收录;署名更正等其他要求可一并提出。