Puppeteer
Google 出品的 JavaScript 浏览器控制库,通过 DevTools 协议或 WebDriver BiDi 驱动 Chrome 与 Firefox,默认无头运行,适合前端与 Node.js 开发者写爬虫和端到端测试。
Puppeteer 是一个 JavaScript 库,用一套高层 API 去控制 Chrome 或 Firefox。它通过 DevTools 协议或 WebDriver BiDi 与浏览器通信,默认以无头模式运行,也就是不弹出可见窗口。开发者拿它做网页自动化:打开页面、点击元素、填表单、截图、抓取渲染后的内容,或者跑端到端测试。
怎么用起来
通过 npm、Yarn、pnpm 或 Bun 安装。装 puppeteer 时会在安装阶段顺带下载一个兼容版本的 Chrome;如果只想把它当库用、自己管浏览器,就装 puppeteer-core。页面特别提醒,现在不少包管理器默认拦截依赖的安装脚本,脚本被拦下时浏览器不会自动下载,运行时会报错,这时需要手动执行 npx puppeteer browsers install 补装,或者在 package.json 里放行安装脚本。
能做什么
官方示例展示了典型流程:启动浏览器、新建页面、跳转到指定网址、设置视口尺寸、用键盘按键触发搜索菜单、按无障碍名称定位输入框并填入文字、点击第一条结果,再取出元素文本打印出来。定位元素支持 CSS 选择器和 ::-p-aria()、::-p-text() 这类伪选择器,对动态页面比较实用。
站点还提到配套的 chrome-devtools-mcp,一个基于 Puppeteer 的 MCP 服务器,用于浏览器自动化和调试;另外支持实验性的 WebMCP API。
适合谁
需要写爬虫、做 UI 自动化测试、批量截图或生成 PDF 的前端与 Node.js 开发者。它面向的是写代码的人,不是点开就能用的图形工具,得先有 JavaScript 和命令行基础。
版本与限制
文档当前对应 25.16.0,站点提供归档版本可查。界面为英文,社区讨论主要在 Stack Overflow、Twitter 和 YouTube。使用前要留意包管理器拦截安装脚本这个坑,否则容易在第一次运行时就卡住。