Node.js 示例与参考
按 quickstart 主线解释 Node.js 示例脚本的用途、运行方式和预期结果。
Node.js 示例建议从 playwright-basic.ts 开始。它对应 quickstart 的最小闭环:创建 session、通过 CDP 连接、访问网页。其他示例都是在这个基础上扩展出来的能力。
运行前准备
npm install
npm run build
cp .env.example .env
# 填入 LEXMOUNT_API_KEY 和 LEXMOUNT_PROJECT_ID
cd examples
npm install常用环境变量:
LEXMOUNT_API_KEY=sk_...
LEXMOUNT_PROJECT_ID=project_...
LEXMOUNT_BASE_URL=https://api.lexmount.cn
LEXMOUNT_EXTENSION_PATH=/absolute/path/to/extension.zip
LEXMOUNT_PROXY_SERVER=http://host:port
LEXMOUNT_PROXY_USERNAME=optional
LEXMOUNT_PROXY_PASSWORD=optional推荐阅读顺序
| 顺序 | 示例 | 目的 |
|---|---|---|
| 1 | playwright-basic.ts | 跑通创建 session、连接浏览器、访问网页 |
| 2 | session-management.ts | 创建多种 session,并查询 active 列表 |
| 3 | session-downloads.ts | 获取远程浏览器下载产物 |
| 4 | context-basic.ts | 创建并复用浏览器 context |
| 5 | context-list-get.ts | 查询 context 列表和详情 |
| 6 | context-modes.ts | 理解 readWrite / readOnly 访问模式 |
| 7 | context-lock-handling.ts | 处理 context 被占用的场景 |
| 8 | extension-basic.ts | 上传并挂载 Chrome 扩展 |
| 9 | proxy-session.ts | 创建带自定义代理的 session |
playwright-basic.ts: 最小浏览器闭环
运行:
npm run playwright-basic它会创建普通浏览器 session,通过 connectUrl 连接远程浏览器,访问 https://example.com 并输出标题。第一次接入时先跑这个脚本。
session-management.ts: 管理多个 session
运行:
npm run session-management它演示创建 normal 和 light session,并查询当前 active session 列表。适合理解并发浏览器、分页结果和 session 元数据。
session-downloads.ts: 取回下载文件
运行:
npm run session-downloads它会配置远程浏览器下载目录,触发下载,然后通过 SDK 查询下载元数据、获取单个文件或归档全部下载。
Context 相关示例
npm run context-basic
npm run context-list-get
npm run context-modes
npm run context-lock-handling这些示例都围绕“复用浏览器数据”展开:
context-basic.ts:创建 context 并挂载到 session。context-list-get.ts:查看 context metadata 和状态。context-modes.ts:展示读写与只读模式。context-lock-handling.ts:处理 context 被其他 session 占用时的错误与重试信息。
extension-basic.ts: 扩展能力
运行:
npm run extension-basic设置 LEXMOUNT_EXTENSION_PATH 后,脚本会上传扩展 zip,并在创建 session 时通过 extensionIds 挂载。
proxy-session.ts: 自定义代理
运行:
npm run proxy-session设置代理环境变量后,脚本会创建带代理的远程浏览器,并验证浏览器请求是否从代理出口发出。
排查建议
- 如果创建 session 失败,先检查 API Key、Project ID 和项目额度。
- 如果 Playwright 连接失败,打印
session.connectUrl,并确认 session 没有被提前关闭。 - 如果 context 被锁,查看错误中的
activeSessionId和retryAfter,等待原 session 释放后重试。
Lexmount 文档