Node.js SDK 快速开始
使用 TypeScript 创建云端浏览器 session,并通过 Playwright CDP 连接。
Node.js SDK 的接入路径和控制台 快速入门 一致:API Key、Session、View 验证、代码连接。建议先在控制台确认 session 能正常创建和打开,再接入服务端代码。
1. 安装依赖
npm install lexmount@0.5.14 playwright dotenv
npx playwright install chromium如果你运行 SDK 仓库里的 examples:
npm install
npm run build
cd examples
npm install2. 配置环境变量
LEXMOUNT_API_KEY=sk_...
LEXMOUNT_PROJECT_ID=project_...
LEXMOUNT_BASE_URL=https://api.lexmount.cnAPI Key 和 Project ID 来自控制台的 Settings / API Keys 页面。
3. 创建 session
import { Lexmount } from 'lexmount';
const client = new Lexmount();
const session = await client.sessions.create({
browserMode: 'normal',
});
console.log('session id:', session.id);
console.log('view url:', session.inspectUrl);
console.log('connect url:', session.connectUrl);
await session.close();
client.close();这一步对应控制台里的“创建 session”。inspectUrl 用来打开远程 View,connectUrl 用来给 Playwright / Puppeteer 连接。
4. 使用 Playwright 连接
import { config } from 'dotenv';
import { chromium } from 'playwright';
import { Lexmount } from 'lexmount';
config();
const client = new Lexmount();
const session = await client.sessions.create({ browserMode: 'normal' });
try {
const browser = await chromium.connectOverCDP(session.connectUrl);
const context = browser.contexts()[0] ?? (await browser.newContext());
const page = context.pages()[0] ?? (await context.newPage());
await page.goto('https://example.com', { waitUntil: 'domcontentloaded' });
console.log('title:', await page.title());
await browser.close();
} finally {
await session.close();
client.close();
}代码执行顺序和 quickstart 一致:
- SDK 用 API Key 创建云端浏览器。
- Playwright 通过
connectUrl连接远程浏览器。 - 代码执行导航、读取标题等浏览器动作。
finally中释放 session,避免云端实例残留。
5. 开启下载或回放存储
下载文件和回放存储都需要显式开启。只打开当前任务需要的产物类型。
const downloadSession = await client.sessions.create({
browserMode: 'normal',
downloads: { enabled: true },
});
const browser = await chromium.connectOverCDP(downloadSession.connectUrl);
const cdp = await browser.newBrowserCDPSession();
await cdp.send('Browser.setDownloadBehavior', {
behavior: 'allow',
downloadPath: '/config/Downloads',
eventsEnabled: true,
});
const replaySession = await client.sessions.create({
browserMode: 'normal',
recording: { persistent: true },
});download-enabled session 产生文件后,用 client.sessions.downloads.list/get/archive 取回。recording-enabled session 关闭后,在控制台 session 详情页查看 replay 结果。
6. 和示例脚本的对应关系
| 示例 | 对应 quickstart 步骤 | 适合什么时候看 |
|---|---|---|
playwright-basic.ts | 创建 session、连接浏览器、访问页面 | 第一次验证 SDK |
session-management.ts | 创建和查询 session | 需要管理并发浏览器 |
session-downloads.ts | 取回远程下载文件 | 任务会产生下载结果 |
context-basic.ts | 复用浏览器上下文 | 需要保存登录态或浏览器数据 |
extension-basic.ts | 挂载 Chrome 扩展 | 浏览器任务依赖扩展 |
proxy-session.ts | 使用自定义代理 | 需要指定出口或认证代理 |
更多说明见 Node.js 示例与参考。
Lexmount 文档