44 lines
1.9 KiB
Markdown
44 lines
1.9 KiB
Markdown
# 通用动作目录
|
|
|
|
> [返回文档中心](../README.md) · [任务协议](../protocol.md) · [后续工作建议](../roadmap.md)
|
|
|
|
## 动作状态
|
|
|
|
| 动作 | 当前状态 | 文档 |
|
|
|---|---|---|
|
|
| `WAIT` | **[已实现]**,条件扩展为 **[提案]** | [wait.md](wait.md) |
|
|
| `CLICK` | **[部分实现]** | [click.md](click.md) |
|
|
| `INPUT` | **[部分实现]** | [input.md](input.md) |
|
|
| `BACK` | **[已实现]**,单次分发和验证为 **[提案]** | [back.md](back.md) |
|
|
| `EXTRACT_TEXT` | **[已实现]** | [extract.md](extract.md) |
|
|
| `EXTRACT` | **[提案]** | [extract.md](extract.md) |
|
|
| `OPEN` | **[提案]** | [open.md](open.md) |
|
|
| `SCROLL` | **[提案]** | [scroll.md](scroll.md) |
|
|
| `SELECT_OPTION` | **[提案]** | [select-option.md](select-option.md) |
|
|
| `SCREENSHOT` | **[提案]** | [screenshot.md](screenshot.md) |
|
|
| `BRANCH` | **[提案]** | [流程控制](../flow-control.md#4-branch-提案) |
|
|
|
|
当前代码中的动作只有 `WAIT`、`CLICK`、`INPUT`、`BACK` 和 `EXTRACT_TEXT`。
|
|
|
|
## 统一规则
|
|
|
|
每个 UI 动作遵循同一条简单流程:
|
|
|
|
1. 校验动作字段、`packageName` 和可选 `activityName`。
|
|
2. 在步骤 `timeoutMs` 内等待上下文和目标控件。
|
|
3. 默认要求目标唯一;多个目标明确失败。
|
|
4. 执行动作;有副作用的动作默认只分发一次。
|
|
5. 如果任务提供 `after`,重新读取页面并验证结果。
|
|
6. 返回 `success`、`code`、`message`、`output` 和 `elapsedMs`。
|
|
|
|
动作文件只描述动作特有参数。选择器、条件、输出和结果结构分别引用共享文档。
|
|
|
|
## 实现检查清单
|
|
|
|
- 模型包含动作和参数。
|
|
- 解析器校验必要字段、类型和范围。
|
|
- 执行器有总超时,不无限等待。
|
|
- 驱动只提供 Android 基础能力,不包含目标 App 业务规则。
|
|
- 测试覆盖成功、未找到、多个目标、超时和底层失败。
|
|
- 文档状态与 `ActionType` 一致。
|