# Browser Pilot

> 增强版浏览器自动化。基于 Playwright 实现完整浏览器操作，包括基础导航、截图、点击、表单填写、内容提取、文件上传/下载、多标签页管理。支持反检测和高级自动化。

- Skill: `xyva-yuangui/browser-pilot` (Agent Skill, multi-file: 7 files)
- Install (CLI): `npx skillmds@latest add xyva-yuangui/browser-pilot`
- Raw SKILL.md: https://api.skillmd.com/api/skills/xyva-yuangui/browser-pilot/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: xyva-yuangui (https://skillmd.com/u/xyva-yuangui)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/xyva-yuangui/browser-pilot

---


# 🌐 browser-pilot（增强版）

✅ **状态**：增强版已上线，功能完整。

## 功能

### 基础操作
1. **导航** (navigate) - 访问 URL
2. **截图** (screenshot) - 页面截图（支持整页）
3. **点击** (click) - 点击元素
4. **填写** (fill) - 填写表单
5. **提取文本** (extract_text) - 提取页面/元素文本
6. **提取 HTML** (extract_html) - 提取页面/元素 HTML
7. **等待** (wait) - 等待指定时间

### 增强功能（新增）
8. **文件上传** (upload_file) - 上传文件到表单
9. **文件下载** (download_file) - 下载文件
10. **多标签页** (switch_tab/new_tab/close_tab) - 标签页管理

### 浏览器支持
- Chromium（Chrome）
- Firefox
- WebKit（Safari）

### 反检测
- 隐藏 webdriver 特征
- 隐藏 automation 特征
- 随机 User-Agent
- 模拟人类操作延迟

## 使用方法

### 通过技能调用
用户说"打开网页"、"截图"、"自动化操作"时自动触发。

### 直接脚本调用
```bash
# 健康检查
python3 scripts/browse.py --check

# 访问网页
python3 scripts/browse.py --url "https://example.com"

# 访问网页并截图
python3 scripts/browse.py --url "https://example.com" --screenshot

# 访问网页并提取文本
python3 scripts/browse.py --url "https://example.com" --extract "h1"

# 有头模式（显示浏览器窗口）
python3 scripts/browse.py --url "https://example.com" --headed

# 自定义延迟
python3 scripts/browse.py --url "https://example.com" --slow-mo 500
```

### Python API 调用
```python
from browse import BrowserPilot

with BrowserPilot(headless=True, slow_mo=100) as pilot:
    # 启动
    pilot.start("chromium")
    
    # 导航
    pilot.navigate("https://example.com")
    
    # 截图
    pilot.screenshot("output.png")
    
    # 点击
    pilot.click("#login-button")
    
    # 填写表单
    pilot.fill("#username", "myuser")
    pilot.fill("#password", "mypass")
    
    # 提取文本
    text = pilot.extract_text("h1")
    print(text["text"])
    
    # 关闭（with 语句自动关闭）
```

## 技术实现

基于 `playwright` Python 库实现，提供同步 API。

## 安装

```bash
# 安装 playwright
pip install playwright

# 安装浏览器
playwright install
```

## 限制

1. 复杂验证码（CAPTCHA）无法自动破解，需人工干预
2. 部分网站使用高级 Bot 检测（如 Cloudflare Turnstile），可能触发拦截
3. 无头模式默认开启；如需可见浏览器，传入 `headless=False`
4. 下载文件依赖浏览器配置的下载路径

## 已支持功能

- ✅ 文件上传（`input[type=file]` 元素）
- ✅ 文件下载（等待下载事件）
- ✅ 多标签页管理（open/switch/close tab）
- ✅ 反检测（stealth 模式，随机 User-Agent，人类速度）
- ✅ 截图 / 全页截图
- ✅ 表单填写 / 点击 / 滚动 / 悬停
- ✅ 文本提取 / HTML 提取
- ✅ 等待元素出现

## 输出目录

截图和输出文件保存到：`__LEGACY_HOME__/.openclaw/output/browser/`

