Puppeteer 是一个功能强大且广受开发者信赖的 Node.js 库,它让你能通过简洁的 JavaScript/TypeScript 代码,像真人一样操作 Chrome 或 Firefox 浏览器——无论是自动填写表单、点击按钮、截图网页,还是执行复杂的端到端测试。它解决了传统网页自动化中环境配置复杂、稳定性差、兼容性弱等痛点,让开发者无需手动点鼠标,就能批量完成重复性高、逻辑明确的浏览器任务。
核心功能
- 无头浏览器控制:默认以“无界面”模式运行 Chrome 或 Firefox,节省系统资源,适合服务器部署和 CI/CD 自动化流程
- 精准网页抓取与渲染:完美支持 JavaScript 渲染的动态网页(如 React/Vue 应用),可等待元素加载、执行自定义脚本,获取真实 DOM 内容
- 自动化交互模拟:支持键盘输入、鼠标点击、表单提交、页面导航、文件上传等完整用户行为链,媲美真实操作体验
- 一键生成高质量截图与 PDF:可截取整页、可视区域或指定元素截图,支持高清、响应式、带背景色导出;亦可将网页直接保存为可打印 PDF
- 端到端测试利器:深度集成 Jest、Playwright(生态互补)、Mocha 等测试框架,提供稳定的选择器、等待机制和断言能力,大幅提升前端测试可靠性
- 开发者工具深度调用:基于 Chrome DevTools Protocol 和新兴的 WebDriver BiDi 协议,可监听网络请求、拦截响应、分析性能、调试内存泄漏等
适合哪些人用
前端工程师用它做 UI 自动化回归测试;后端和全栈开发者用它构建高稳定性的数据采集服务(替代传统爬虫);QA 工程师用它编写可复现、易维护的测试用例;产品经理和运营同学也能借助简单脚本快速生成竞品页面对比截图或批量导出报告;甚至设计师可通过 Puppeteer 自动化生成设计稿预览图或组件视觉快照。
快速上手
只需一条命令即可安装(自动下载匹配版本的 Chromium):
npm install puppeteer
几行代码就能启动浏览器、打开网页并截图:
const puppeteer = require('puppeteer');
async function run() {
const browser = await puppeteer.launch();
const page = await browser.newPage();
await page.goto('https://openklc.com');
await page.screenshot({ path: 'openklc.png' });
await browser.close();
}
run();
如需使用已安装的 Chrome 或 Firefox,推荐安装轻量版:npm install puppeteer-core,再通过 executablePath 指定本地浏览器路径,灵活适配生产环境。
项目信息
JavaScript API for Chrome and Firefox
94.9k
今日 +80 stars today
Stars
9.4k
Forks
TypeScript
Apache-2.0
编程语言:TypeScript|GitHub Star 数:94,851|开源协议:Apache-2.0|GitHub 项目地址
它是 Google 官方孵化、全球数万开发者每日依赖的浏览器自动化基石——稳定、文档完善、生态成熟,学一次,管十年。



