Mirage:用自然语言替代CSS选择器的浏览器自动化测试工具

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 值得关注。

项目地址:https://github.com/strukto-ai/mirage

© 版权声明
THE END
喜欢就支持一下吧
点赞11 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容