Puppeteer
提供了一个高级 API 来通过 开发工具协议 或 WebDriver 双向 控制 Chrome 或 Firefox。
提供了一个高级 API 来通过 开发工具协议 或 WebDriver 双向 控制 Chrome 或 Firefox。
Puppeteer是一个JavaScript库,通过DevTools协议或WebDriver BiDi提供高级API,用于以编程方式控制Chrome或Firefox浏览器,默认运行在无头模式下,解决浏览器自动化操作中的跨浏览器兼容性和协议选择问题。
| 收费 | 开源免费,由Chrome浏览器自动化团队维护 |
|---|---|
| 平台 | Node.js(需v6.4.0+,async/await需v7.6.0+) |
| 中文 | 官方中文文档(粤ICP备13048890号,Nodejs.cn旗下) |
| 用途 | 通过高级API控制Chrome/Firefox,用于自动化测试、网页截图/PDF、SSR、性能分析等 |
Puppeteer可以模拟几乎所有手动浏览器操作,包括表单提交、UI测试、键盘输入、页面截图和PDF生成、SPA抓取与SSR、Chrome扩展测试、timeline trace性能诊断等。
Puppeteer提供puppeteer和puppeteer-core两个包:前者安装时自动下载兼容版Chrome(约170-282MB),后者为轻量版需自行管理浏览器。现代包管理器(npm、pnpm、Yarn、Bun、Deno)默认阻止安装脚本,需手动运行npx puppeteer browsers install或配置allowScripts。
自v23.0.0起,Puppeteer同时支持Chrome和Firefox。Chrome默认使用Chrome DevTools Protocol (CDP),也可切换至WebDriver BiDi;Firefox默认使用WebDriver BiDi。团队明确表示不会停止CDP支持,以保留Chrome独有自动化场景。
Q1:Puppeteer v23.0.0之后如何选择CDP和WebDriver BiDi?
A1:Chrome自动化默认使用CDP,Firefox自动化默认使用WebDriver BiDi。若需跨浏览器一致API,可配置Chrome使用WebDriver BiDi;若需Chrome独有功能(如DevTools协议特有操作),则保留CDP。两者均受官方生产级支持。
Q2:安装Puppeteer时浏览器下载被阻止怎么办?
A2:现代包管理器默认阻止安装脚本。解决方法:1) 安装后运行npx puppeteer browsers install手动下载;2) 在package.json中将puppeteer加入allowScripts(npm);3) 使用puppeteer-core自行管理浏览器。
Q3:Puppeteer的WebMCP实验API有什么限制?
A3:WebMCP是实验性API,仅支持Chrome 150+,需启动时添加--enable-features=WebMCP标志。它允许网页注册工具供LLM等外部代理调用,Puppeteer通过page.webmcp属性提供tools()方法发现和执行工具,并支持toolsadded/toolsremoved事件监听。
更多同类工具与网站,可在前端库分类继续挑选。
信息核实于 2026年7月,具体以官网为准。
评论
暂无评论