Logo of LexmountLexmount Docs
Logo of LexmountLexmount Docs
Homepage

介绍

使用指南OpenClaw 接入 Lexmount 说明Codex Skill 接入 Lexmount 说明
X (Twitter)

使用指南

如何使用 Lexmount Browser 核心功能

快速开始

本指南将帮助您快速开始使用 Lexmount Browser 核心功能。我们提供了Python和Node.js两种语言的SDK,您可以根据自己的需求选择合适的版本。

Python SDK 使用指南

快速获取示例

您也可以直接访问我们在 GitHub 上的 Python SDK 快速开始仓库 获取即用型示例。

前提条件

请确保您已安装 Python 3.7 或更高版本。

1. 创建并激活虚拟环境

python3 -m venv venv
source venv/bin/activate  # Linux/macOS
# 或者在 Windows 上使用
# venv\Scripts\activate

2. 安装依赖

pip install -r requirements.txt

3. 配置环境变量

cp .env.example .env
# 编辑 .env 文件,填入您的 API Key 和 Project ID

重要提示

请确保妥善保管您的 API Key,不要将其泄露给他人。

4. 运行示例

我们提供了两个示例脚本,帮助您快速了解如何使用我们的服务:

python demo.py              # 基础演示
python light-demo.py        # 轻量级浏览器演示

示例代码详解

基础演示 (demo.py)

这个示例展示了如何创建一个基本的会话并执行简单的浏览器操作:

from dotenv import load_dotenv

from lexmount import Lexmount
from playwright.sync_api import Playwright, sync_playwright

# Load environment variables first
load_dotenv(override=True)


def run(playwright: Playwright) -> None:
    # Initialize Lexmount client
    lm = Lexmount()  # Reads credentials from environment variables
    
    # Create a session on Lexmount
    with lm.sessions.create() as session:

        # Connect to the remote session
        chromium = playwright.chromium
        browser = chromium.connect_over_cdp(session.connect_url)
        context = browser.contexts[0]
        page = context.pages[0]

        # Execute Playwright actions on the remote browser tab
        page.goto("https://dev.lexmount.com/")
        page_title = page.title()
        assert page_title == "Lexmount Browser - AI-Powered Cloud Browser Service", f"Page title is not 'Lexmount Browser - AI-Powered Cloud Browser Service', it is '{page_title}'"
        page.screenshot(path="screenshot.png")

        page.close()
        browser.close()


if __name__ == "__main__":
    with sync_playwright() as playwright:
        run(playwright)

轻量级浏览器演示 (light-demo.py)

这个示例展示了如何使用 chrome-light-docker 模式来高效地提取网页链接:

from dotenv import load_dotenv
from lexmount import Lexmount
from playwright.sync_api import Playwright, sync_playwright

# Load environment variables first
load_dotenv(override=True)


def run(playwright: Playwright) -> None:
    """演示使用 chrome-light-docker 提取网页链接"""
    print("🔗 提取新闻链接演示")
    
    # Initialize Lexmount client
    lm = Lexmount()  # Reads credentials from environment variables
    
    # Create a session with chrome-light-docker
    with lm.sessions.create(browser_mode="light") as session:
    
        # Connect to the remote session
        chromium = playwright.chromium
        browser = chromium.connect_over_cdp(session.connect_url)
        context = browser.contexts[0]
        page = context.pages[0]
        
        # Execute Playwright actions on the remote browser tab
        page.goto("https://news.sina.cn/")
        
        # Extract all links
        links = page.evaluate('''() => {
            return Array.from(document.querySelectorAll('a[href]')).map(a => a.href);
        }''')
        
        # Save to file
        with open("links.txt", "w", encoding="utf-8") as f:
            for link in links:
                f.write(link + "\n")
        
        print(f"✅ 已提取 {len(links)} 个链接,保存到: links.txt")
        
        page.close()
        browser.close()


if __name__ == "__main__":
    with sync_playwright() as playwright:
        run(playwright)

常见问题

Node.js SDK 使用指南

快速获取示例

您可以直接访问我们在 GitHub 上的 JavaScript/TypeScript SDK 快速开始仓库 获取即用型示例。

前提条件

请确保您已安装 Node.js 14 或更高版本。您可以从 Node.js 官网 下载并安装。

1. 安装依赖

npm install

2. 配置环境变量

在项目根目录创建 .env 文件:

# .env
LEXMOUNT_API_KEY=your_api_key_here
LEXMOUNT_PROJECT_ID=your_project_id_here

您可以从以下地址获取凭证:here

3. 运行示例

# 基础演示
npm run demo

# 轻量级浏览器演示
npm run light-demo

示例代码详解

基础演示 (demo.ts)

这个示例展示了如何创建一个基本的会话并执行简单的浏览器操作:

/**
 * 基础 Lexmount 演示
 * - 访问 Lexmount 网站
 * - 验证页面标题
 * - 截取屏幕截图
 */

import { config } from 'dotenv';
import { chromium } from 'playwright';
import { Lexmount } from 'lexmount';

// 加载环境变量
config();

async function main() {
  console.log('🚀 启动 Lexmount 基础演示...\n');

  // 初始化 Lexmount 客户端
  // 自动从环境变量读取 LEXMOUNT_API_KEY 和 LEXMOUNT_PROJECT_ID
  const lm = new Lexmount();

  console.log('📡 创建浏览器会话...');
  // 在 Lexmount 上创建一个会话
  const session = await lm.sessions.create();
  console.log(`✓ 会话创建成功: ${session.sessionId}\n`);

  // 连接到远程会话
  const browser = await chromium.connectOverCDP(session.connectUrl);
  const context = browser.contexts()[0];
  const page = context.pages()[0];

  // 在远程浏览器上执行 Playwright 操作
  console.log('🌐 正在访问 Lexmount 网站...');
  await page.goto('https://dev.lexmount.net/');

  const pageTitle = await page.title();
  console.log(`📄 页面标题: ${pageTitle}`);

  // 验证页面标题
  const expectedTitle = 'Lexmount Browser - AI-Powered Cloud Browser Service';
  if (pageTitle === expectedTitle) {
    console.log('✓ 页面标题验证成功!\n');
  } else {
    throw new Error(
      `页面标题不匹配!\n期望: ${expectedTitle}\n实际: ${pageTitle}`
    );
  }

  // 截取屏幕截图
  console.log('📸 正在截取屏幕截图...');
  await page.screenshot({ path: 'screenshot.png' });
  console.log('✓ 截图已保存至: screenshot.png\n');

  // 清理资源
  await page.close();
  await browser.close();

  console.log('✨ 演示成功完成!');
}

main().catch((error) => {
  console.error('❌ 错误:', error.message);
  process.exit(1);
});

轻量级浏览器演示 (light-demo.ts)

这个示例展示了如何使用 chrome-light-docker 模式来高效地提取网页链接:

/**
 * 轻量级浏览器演示
 * - 使用 chrome-light-docker 模式
 * - 访问新浪新闻
 * - 提取所有链接并保存到 links.txt
 */

import { config } from 'dotenv';
import { chromium } from 'playwright';
import { Lexmount } from 'lexmount';
import { writeFileSync } from 'fs';

// 加载环境变量
config();

async function main() {
  console.log('🔗 提取新闻链接演示\n');

  // 初始化 Lexmount 客户端
  const lm = new Lexmount();

  console.log('📡 创建轻量级浏览器会话...');
  // 创建一个 chrome-light-docker 模式的会话
  const session = await lm.sessions.create({
    browserMode: 'chrome-light-docker',
  });
  console.log(`✓ 会话创建成功: ${session.sessionId}\n`);

  // 连接到远程会话
  const browser = await chromium.connectOverCDP(session.connectUrl);
  const context = browser.contexts()[0];
  const page = context.pages()[0];

  // 访问新浪新闻
  console.log('🌐 正在访问新浪新闻...');
  await page.goto('https://news.sina.cn/');
  console.log('✓ 页面加载完成\n');

  // 提取所有链接
  console.log('🔍 正在提取链接...');
  const links = await page.evaluate(() => {
    return Array.from(document.querySelectorAll('a[href]')).map(
      (a) => (a as HTMLAnchorElement).href
    );
  });

  // 保存到文件
  const filename = 'links.txt';
  writeFileSync(filename, links.join('\n'), 'utf-8');

  console.log(`✅ 已提取 ${links.length} 个链接,保存到: ${filename}\n`);

  // 清理资源
  // 注意:已注释掉以保持会话活动以便检查
  // await page.close();
  // await browser.close();

  console.log('✨ 演示成功完成!');
}

main().catch((error) => {
  console.error('❌ 错误:', error.message);
  process.exit(1);
});

常见问题

下一步

  • 查看 API 参考 获取更详细的接口说明
  • 阅读 高级使用 了解更多高级功能
  • 访问 示例库 获取更多实际应用案例

有问题?

如果您在使用过程中遇到任何问题,请查看 常见问题 或 联系我们 获取支持。

OpenClaw 接入 Lexmount 说明

配置 OpenClaw 通过远程 CDP 连接 Lexmount。

Table of Contents

快速开始
Python SDK 使用指南
1. 创建并激活虚拟环境
2. 安装依赖
3. 配置环境变量
4. 运行示例
示例代码详解
基础演示 (demo.py)
轻量级浏览器演示 (light-demo.py)
常见问题
Node.js SDK 使用指南
1. 安装依赖
2. 配置环境变量
3. 运行示例
示例代码详解
基础演示 (demo.ts)
轻量级浏览器演示 (light-demo.ts)
常见问题
下一步