基础
Node 上控制 Chrome/Chromium。
| 命令 | 说明 |
|---|
| 安装(含浏览器) |
| 启动浏览器 |
| 新建页面 |
| 打开页面 |
| 关闭 |
页面操作
选择器与交互。
| 命令 | 说明 |
|---|
| 单个 / 多个元素 |
| 输入文本 |
| 点击 |
| 下拉选择 |
| 在页面上下文执行 JS 取数据 |
| 键盘 |
等待
避免竞态。
| 命令 | 说明 |
|---|
| 等元素出现 |
| 等条件为真 |
| 等导航完成 |
| 导航等待策略 |
| 全局超时 |
截图与 PDF
产出文件。
| 命令 | 说明 |
|---|
| 整页截图 |
| 元素截图 |
| 导出 PDF |
| 视口(高清截图) |
| 模拟移动设备 |
进阶
拦截与配置。
| 命令 | 说明 |
|---|
| 拦截请求 |
| 监听响应 |
| 设置 Cookie |
| 容器环境常用参数 |
| HTTP 基本认证 |
使用说明
Puppeteer 浏览器自动化速查:基础、页面操作、等待、截图与 PDF、进阶;支持搜索与分类筛选,点击即可复制。
- 按用途点分类:基础、页面操作、等待、截图与 PDF、进阶。
- 点「操作」列复制,替换选择器、URL 与输出路径后使用。
- 导航后用 waitForSelector 或 waitForFunction 等待元素就绪,避免竞态。
- 容器中运行记得加 --no-sandbox 参数;截图用 fullPage 导出整页。
常见问题
- waitUntil 各取值有何区别?
- load 等页面加载完成,domcontentloaded 只等 DOM,networkidle0 等网络空闲(无连接),networkidle2 允许最多 2 个连接。抓 SPA 常用 networkidle2。
- page.$ 和 page.$$ 有什么区别?
- $ 返回首个匹配元素(或 null),$$ 返回全部匹配的数组。都需要 await,因为它们返回 Promise。
- 如何拿到页面里的数据?
- 用 page.evaluate 在浏览器上下文执行函数并返回值,例如 await page.evaluate(() => document.title),注意不能直接引用 Node 侧变量。
延伸阅读