各平台预置 Node
Midscene Test 将可在 YAML 用例与生命周期钩子中调用的每一个能力称为 Node(节点)。
当你在 midscene.config.ts 中通过 createMidsceneNodes({ agentClass, getAgent }) 注册官方 Agent 时,框架会自动注入通用 AI 能力以及对应平台的官方预置 Node。本文汇总各平台开箱即用的预置 Node 列表、参数结构与常见调用方式。
本文档列出的是官方预置能力的标准规格。各项目最终可用的完整 Node 列表、输入 Schema 以及团队自定义的业务 Node,可以在测试项目目录下运行 pnpm exec midscene-test nodes(多工程可加 --project <name>)生成本地的 midscene-node-spec.md 查阅。
Node 调用语法速查
YAML 用例支持两种传参方式:
- 字符串简写:当 Node 声明了
stringInputKey时,可以直接传入单一字符串: - 对象传参:当需要配置多个字段或可选参数时,以键值对展开传参;无参数的 Node 传入
{}:
全平台通用 Node
无论测试目标是 Web、移动端(Android、iOS、HarmonyOS)还是桌面端,所有测试工程均支持核心的 AI 操作与断言节点。
核心 AI 节点
在日常编写测试用例时,最核心且最推荐使用的仅有三个 Node:
其他原子操作与进阶节点
GUI Agent SDK 上的其他原子操作方法(如 aiTap、aiHover、aiInput、aiKeyboardPress、aiScroll、aiDragAndDrop 等)同样可以在 YAML 中直接作为 Node 调用。
不过,出于测试用例的健壮性考虑,不建议在 YAML 中编写过于细致的流程编排:
- 如果将操作拆解为大量的微观点击、聚焦与滚动,不仅会让 YAML 脚本冗长,而且当界面布局发生微调时容易导致用例断裂;
- 通常应优先使用
aiAct表达用户的业务意图(如“在搜索框输入马克杯并点击搜索”),交由视觉模型自动规划底层的操作步骤。
此外,以下辅助与进阶能力也已注入全局运行时:
- 数据提取与问答:如
aiQuery(结构化数据提取)、aiBoolean/aiString/aiNumber/aiAsk(界面内容提取与问答)。 - 环境指引与报告记录:
setAIContext(为后续 AI 操作注入业务规则或通用弹窗处理指引)、recordToReport(向测试报告写入自定义记录或快照)。 - 基础等待与执行:
wait(框架级可取消等待,接收{ duration, unit }参数)、sleep(Agent 级等待)、javascript(执行脚本)。
如果需要在测试中使用这些进阶节点,可以通过 pnpm exec midscene-test nodes 生成的说明书查阅它们完整的输入参数定义。
Web 专用预置 Node
Web 平台模板基于 Playwright 或 Puppeteer 实现,在通用能力基础上增加了浏览器会话操作:

