怎样3分钟掌握AI视觉自动化:Midscene.js终极指南让你告别复杂代码
还在为编写繁琐的浏览器自动化脚本而烦恼吗?还在为每次UI改动就要重写选择器而头疼吗?Midscene.js为你带来了革命性的解决方案——用自然语言控制一切界面!这个开源项目让AI成为你的"眼睛"和"手指",只需描述你想做什么,它就能自动执行。无论是网页、移动应用还是桌面软件,Midscene都能像真人一样操作,真正实现了"所见即所得"的自动化体验。
痛点场景:当程序员不再想写代码
想象一下这个场景:产品经理又提了一个新需求——"在电商网站自动搜索商品,筛选价格区间,然后加入购物车"。传统方式下,你需要:
- 分析页面结构,编写复杂的选择器
- 处理各种异步加载和弹窗
- 调试那些脆弱的DOM定位
- 每次UI改版都要重写代码
更糟糕的是,有些元素根本没有语义化标签——纯图标按钮、Canvas渲染的图表、跨域的iframe,这些对于传统自动化工具来说几乎是"盲区"。但Midscene.js彻底改变了游戏规则,它只依赖截图和你的自然语言指令,就像你在教一个聪明的助手如何操作界面。
解决方案:AI视觉驱动的"数字助手"
Midscene.js是一个基于视觉的UI测试与自动化开源SDK,它通过多模态AI模型理解屏幕内容,然后执行你描述的操作。简单来说,你把界面截图给AI看,告诉它"点击搜索框,输入'蓝牙耳机',然后点击搜索按钮",它就能照做。
Midscene浏览器扩展让你在Chrome中直接使用自然语言控制网页
最神奇的是,Midscene支持全平台:Web浏览器、Android、iOS、HarmonyOS、桌面应用,甚至是自定义界面。所有平台都使用同一套API,学习成本极低。
核心价值:为什么Midscene与众不同?
1. 告别选择器地狱 🎯
传统自动化最大的痛点就是选择器——每次UI重构都要重新调整。Midscene完全基于视觉,只要人眼能看到,它就能定位。这意味着:
- 零维护成本:UI怎么改,你的自动化脚本都不需要动
- 全覆盖能力:图标按钮、Canvas元素、跨域iframe都不在话下
- 原生应用支持:Android、iOS原生控件一样能识别操作
2. 两种自动化风格任选 ✨
Midscene提供两种工作方式,满足不同场景需求:
自动规划模式:AI自主决策,像真人一样完成任务
await aiAct('逐一点击所有记录。如果某个记录包含文本"completed",则跳过它');
工作流模式:你将复杂逻辑拆分为多个可控步骤
const recordList = await agent.aiQuery('string[], the record list')
for (const record of recordList) {
const hasCompleted = await agent.aiBoolean(`check if the record ${record}" contains the text "completed"`)
if (!hasCompleted) {
await agent.aiTap(record)
}
}
3. 验证用户真实看到的效果 👁️
传统测试只能检查DOM节点是否存在,但Midscene能验证视觉结果:
- 颜色是否正确
- 高亮状态
- 布局对齐
- 渲染状态
这意味着你不仅能测试功能,还能测试用户体验!
实际应用案例:从电商到移动端
电商自动化:3分钟完成购物流程
假设你要在淘宝搜索商品并下单,传统方式需要大量代码。使用Midscene,你只需要:
- 打开淘宝网站
- 激活Midscene扩展
- 输入:"点击搜索框,输入'无线耳机',点击搜索,选择第一个商品,点击立即购买"
- 点击运行
Midscene Playground提供安全隔离的测试环境,支持Action/Query/Assert三种操作类型
移动端自动化:Android/iOS一网打尽
Midscene不仅限于网页,移动端同样强大:
Android自动化:
# 克隆仓库
git clone https://gitcode.com/GitHub_Trending/mid/midscene
cd midscene
# 运行Android示例
npm run android:demo
Midscene控制Android设备,通过自然语言指令执行操作
iOS自动化:
# 运行iOS示例
npm run ios:demo
Bridge模式:本地与远程的完美协作
Bridge模式是Midscene的杀手级功能,让你通过本地终端控制远程浏览器:
Bridge模式支持本地SDK控制远程浏览器,实现脚本与手动操作的灵活切换
const agent = new AgentOverChromeBridge();
await agent.connectCurrentTab();
await agent.aiAction(`输入'Midscene.js',点击搜索按钮`);
这种模式特别适合:
- 脚本与人工结合:自动化流程中随时插入人工检查
- Cookie复用:保持登录状态,避免重复认证
- 跨设备控制:从开发机控制测试环境的浏览器
技术架构:简单背后的强大
Midscene的技术栈设计精良,既保证了易用性,又提供了强大的扩展能力:
核心架构亮点 🏗️
- 纯视觉驱动:基于截图的多模态模型,不依赖DOM结构
- 多模型支持:兼容Qwen3.x、Doubao-Seed-2.1、GLM-4.6V、gemini-3.5-flash等多种AI模型
- 插件化设计:核心源码位于packages/core/,各平台适配器独立开发
- TypeScript全栈:提供完整的类型安全支持
项目结构清晰 📁
midscene/
├── apps/ # 各种应用实现
│ ├── chrome-extension/ # Chrome扩展
│ ├── android-playground/ # Android演示
│ ├── ios-playground/ # iOS演示
│ └── studio/ # 桌面应用
├── packages/ # 核心包
│ ├── core/ # 核心逻辑
│ ├── web-integration/ # Web集成
│ ├── android/ # Android支持
│ └── ios/ # iOS支持
└── docs/ # 官方文档
5分钟快速上手:零基础也能玩转
第一步:安装Chrome扩展(最快捷)
- 打开Chrome浏览器,访问
chrome://extensions/ - 启用右上角的"开发者模式"
- 点击"加载已解压的扩展程序"
- 选择项目中的
apps/chrome-extension/dist目录
第二步:编写第一个自动化脚本
// 安装Midscene
npm install @midscene/web
// 创建自动化脚本
import { launch } from '@midscene/web';
const agent = await launch({
headless: false, // 显示浏览器
});
// 打开网页
await agent.goto('https://www.google.com');
// 用自然语言搜索
await agent.aiAct('在搜索框输入"Midscene.js",然后点击搜索按钮');
// 提取搜索结果
const results = await agent.aiQuery('搜索结果列表,每项包含标题和链接');
console.log(results);
第三步:进阶配置AI模型
在项目根目录创建.env文件:
# 使用OpenAI
MIDSCENE_MODEL=openai:gpt-4o
OPENAI_API_KEY=your-key-here
# 或使用GLM
MIDSCENE_MODEL=glm:glm-4v
GLM_API_KEY=your-key-here
常见问题排雷指南 🚧
Q1:扩展安装后无响应?
解决方案:
- 检查Chrome控制台错误信息
- 确认构建过程完整执行:
cd apps/chrome-extension && npm run build - 重新加载扩展
Q2:AI模型响应慢?
优化建议:
- 使用本地模型如UI-TARS
- 调整截图分辨率
- 启用缓存功能
Q3:移动端连接失败?
排查步骤:
- Android:确保USB调试已开启
- iOS:安装WebDriverAgent
- 检查设备IP和端口配置
Q4:报告生成失败?
快速修复:
# 构建可视化包
cd packages/visualizer
npm run build
未来展望:AI自动化的无限可能
Midscene.js正在快速发展,未来将带来更多激动人心的功能:
🚀 即将到来的更新
- 更多AI模型支持:持续集成最新的多模态模型
- 团队协作功能:共享自动化脚本和配置
- 云端配置同步:跨设备同步你的自动化工作流
- 增强调试工具:更直观的错误分析和修复建议
🌍 社区生态建设
Midscene拥有活跃的开源社区,已经衍生出多个优秀项目:
- midscene-ios - iOS镜像自动化支持
- midscene-pc - Windows/macOS/Linux PC操作设备
- Midscene-Python - Python SDK
- midscene-java - Java SDK
🤝 加入社区
- Discord交流:与全球开发者实时讨论
- 飞书群组:中文用户专属交流社区
- Twitter关注:获取最新更新和技巧
开始你的AI自动化之旅
Midscene.js正在重新定义UI自动化的边界。它不仅仅是一个工具,更是一种全新的工作方式——让AI成为你的合作者,而不是你要编程的对象。
无论你是测试工程师想要提高效率,还是开发者想要简化E2E测试,或者是产品经理想要快速验证想法,Midscene都能为你提供强大的支持。
现在就行动起来:
git clone https://gitcode.com/GitHub_Trending/mid/midscene
cd midscene
npm install
npm run dev
记住,最好的学习方式就是动手实践。从简单的网页搜索开始,逐步尝试更复杂的自动化流程。Midscene.js将陪伴你在AI自动化的道路上越走越远,让繁琐的界面操作成为过去,让创意和效率成为你的新常态! 🚀
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考




