2026 年 5 月 8 日,一个名为 Mirage 的开源项目登上了 Hacker News 首页。这个工具用自然语言描述来替代传统的 CSS 选择器和 XPath 定位方式,让浏览器自动化测试和数据采集变得更直观、更易维护。
Mirage 是什么
Mirage 是一个浏览器自动化框架,核心特点是用自然语言来定位页面元素。传统工具(如 Selenium、Playwright)需要写 CSS 选择器或 XPath 来定位按钮、链接、输入框等元素,而 Mirage 让你用人类能读懂的描述来完成同样的操作。
安装方法
# 克隆仓库
git clone https://github.com/strukto-ai/mirage.git
cd mirage
# 安装依赖
npm install
# 或通过 npm 直接安装
npm install @strukto-ai/mirage
基本用法
传统方式 vs Mirage 方式
// 传统 Playwright 定位方式
await page.click('[data-testid="login-button"]');
await page.fill('input[name="email"]', 'user@example.com');
await page.fill('#password', 'password123');
// Mirage 自然语言定位方式
await mirage.click("点击登录按钮");
await mirage.fill("在邮箱输入框中输入 user@example.com");
await mirage.fill("在密码输入框中输入 password123");
数据采集场景
// 传统方式
const prices = await page.$$eval('.product-card .price',
els => els.map(el => el.textContent));
// Mirage 方式
const prices = await mirage.extract("获取所有商品的价格");
Mirage 的工作原理
Mirage 底层结合了视觉识别和语义理解:
- DOM 解析:分析页面的 HTML 结构和可访问性标签
- 视觉理解:使用视觉模型识别页面元素的位置和类型
- 语义匹配:将自然语言描述与页面元素进行语义匹配
适用场景
- UI 测试:用自然语言写测试用例,降低测试代码的编写和维护成本
- 数据采集:用自然语言描述要抓取的内容,不用分析页面结构
- RPA 自动化:模拟人工操作网页的自动化流程
- 快速原型:快速验证网页交互逻辑,不用写复杂的定位代码
注意事项
- Mirage 依赖 AI 模型来理解自然语言,可能需要配置 API Key
- 对于高度动态的页面,自然语言描述可能不如精确的选择器稳定
- 目前项目还比较新,社区生态和文档还在完善中
- 在 CI/CD 环境中使用时,注意 AI 模型调用的延迟和成本
同类工具对比
- Selenium:最成熟的浏览器自动化工具,社区大,但 API 老旧
- Playwright:微软出品,现代化 API,支持多浏览器
- Puppeteer:Google 出品,专注 Chrome/Chromium
- Mirage:自然语言定位,降低学习门槛,但依赖 AI 模型
总结
Mirage 的出现让浏览器自动化测试和数据采集的门槛进一步降低。虽然目前还不够成熟,但”用自然语言操作浏览器”这个方向很有前景。如果你的测试或采集场景比较标准化,Mirage 值得关注。












GitHub – TauricResearch/TradingAgents


GitHub – docusealco/docuseal

暂无评论内容