Logo of LexmountLexmount 文档
Logo of LexmountLexmount 文档
首页

介绍

文档总览
X (Twitter)

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 install

2. 配置环境变量

LEXMOUNT_API_KEY=sk_...
LEXMOUNT_PROJECT_ID=project_...
LEXMOUNT_BASE_URL=https://api.lexmount.cn

API 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 一致:

  1. SDK 用 API Key 创建云端浏览器。
  2. Playwright 通过 connectUrl 连接远程浏览器。
  3. 代码执行导航、读取标题等浏览器动作。
  4. 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 示例与参考。

目录

1. 安装依赖
2. 配置环境变量
3. 创建 session
4. 使用 Playwright 连接
5. 开启下载或回放存储
6. 和示例脚本的对应关系