mirror of
https://github.com/web-infra-dev/midscene.git
synced 2025-06-26 23:30:04 +00:00
7.9 KiB
7.9 KiB
Midscene.js
English | 简体中文
开源的 AI 操作助手,适用于 Web、移动端、自动化和测试
案例
指令 | 视频 |
---|---|
用 JS 代码驱动编排任务,搜集周杰伦演唱会的信息,并写入 Google Docs | |
控制地图 App 在 Android 上导航到目的地 | |
使用 midscene mcp 的方法,浏览页面( https://www.saucedemo.com/ ),进行登录,添加商品、下单商品最终根据 mcp 执行的步骤和 playwright example 生成最终的测试用例 |
💡 特性
用自然语言编写自动化脚本
- 描述你的目标和步骤,Midscene 会为你规划和操作用户界面。
- 使用 Javascript SDK 或 YAML 格式编写自动化脚本。
Web & Mobile App
- Web 自动化 🖥️: 可以与 Puppeteer 集成,与 Playwright 集成或使用桥接模式来控制桌面浏览器。
- Android 自动化 📱: 使用 Javascript SDK 配合 adb 来控制本地 Android 设备。
工具
- 用于调试的可视化报告 🎞️: 通过我们的测试报告和 Playground,你可以轻松理解、回放和调试整个过程。
- 使用缓存,提高执行效率 🔄: 使用缓存能力重放脚本,提高执行效率。
- MCP 🔗: 允许其他 MCP Client 直接使用 Midscene 的能力。
三种类型的 API
- 交互 API 🔗: 与用户界面交互。
- 数据提取 API 🔗: 从用户界面和 DOM 中提取数据。
- 实用 API 🔗: 实用函数,如
aiAssert()
(断言),aiLocate()
(定位),aiWaitFor()
(等待)。
👉 无需代码,快速体验
- Chrome 插件: 通过 Chrome 插件 立即开始体验,无需编写代码。
- Android Playground: 内置的 Android Playground 可以控制你的本地 Android 设备。
✨ 选择 AI 模型
Midscene.js 支持多模态 LLM 模型,如 gpt-4o
,以及视觉语言模型,如 Qwen2.5-VL
,gemini-2.5-pro
和 UI-TARS
。
视觉语言模型是 UI 自动化场景的首选。
更多信息请查看 选择 AI 模型。
💡 两种风格的自动化
自动规划
Midscene 会自动规划步骤并执行。它可能较慢,并且深度依赖于 AI 模型的质量。
await aiAction('click all the records one by one. If one record contains the text "completed", skip it');
工作流风格
将复杂逻辑拆分为多个步骤,以提高自动化代码的稳定性。
const recordList = await agent.aiQuery('string[], the record list')
for (const record of recordList) {
const hasCompleted = await agent.aiBoolean(`check if the record contains the text "completed"`)
if (!hasCompleted) {
await agent.aiTap(record)
}
}
有关工作流风格的更多详细信息,请参阅 Blog - 使用 JavaScript 优化 AI 自动化代码
👀 与其它工具比较
-
调试体验: 你很快就会发现,调试和维护自动化脚本才是真正的痛点。无论模型多么强大,你仍然需要调试过程以确保其保持长期稳定。Midscene.js 提供了可视化报告、内置的 Playground 和 Chrome 插件,以调试整个运行过程。这是大多数开发者真正需要的特性,我们也在持续努力改进调试体验。
-
开源、免费、部署灵活: Midscene.js 是一个开源项目。它与云服务和模型提供商解耦,你可以选择公共或私有部署。总会有一个适合你的方案。
-
与 Javascript 集成: 你可以永远相信 Javascript 😎
📄 资源
- 官网和文档: https://midscenejs.com
- API 文档: https://midscenejs.com/zh/api.html
- GitHub: https://github.com/web-infra-dev/midscene
🤝 社区
📝 致谢
我们感谢以下项目:
- Rsbuild 用于构建工具。
- UI-TARS 用于开源的 AI 模型 UI-TARS。
- Qwen2.5-VL 用于开源的视觉语言模型 Qwen2.5-VL。
- scrcpy 和 yume-chan 允许我们使用浏览器控制 Android 设备。
- appium-adb 用于 javascript 桥接 adb。
- YADB 用于提高文本输入的兼容性。
- Puppeteer 用于浏览器自动化与控制。
- Playwright 用于浏览器自动化与控制和测试。
📝 引用
如果您在研究或项目中使用了 Midscene.js,请引用:
@software{Midscene.js,
author = {Xiao Zhou, Tao Yu, YiBing Lin},
title = {Midscene.js: Your AI Operator for Web, Android, Automation & Testing.},
year = {2025},
publisher = {GitHub},
url = {https://github.com/web-infra-dev/midscene}
}
📝 授权许可
Midscene.js 遵循 MIT 许可协议。
如果本项目对你有帮助或启发,请给我们一个 ⭐️