Files
agent_admin/docs/agent/actions/input.md
T

2.2 KiB
Raw Blame History

INPUT

返回动作目录 · 任务协议 · 统一选择器 · 值与输出

1. 当前行为 [部分实现]

{
  "id": "input-keyword",
  "action": "INPUT",
  "packageName": "com.example.target",
  "selector": {
    "resourceId": "com.example.target:id/input"
  },
  "value": "测试内容",
  "timeoutMs": 5000
}

当前实现对唯一节点调用 ACTION_SET_TEXT:

  • value 只能是字符串。
  • 不主动请求焦点。
  • 不检查节点是否可编辑。
  • 不回读验证输入结果。
  • 驱动返回 false 时会重复输入,这是需要修正的现有问题。

2. 简单扩展 [提案]

{
  "id": "input-keyword",
  "action": "INPUT",
  "packageName": "com.example.target",
  "selector": {
    "resourceId": "com.example.target:id/input",
    "state": {
      "visible": true,
      "enabled": true
    }
  },
  "value": {
    "source": "TASK_INPUT",
    "key": "keyword"
  },
  "mode": "REPLACE",
  "verify": "EXACT",
  "timeoutMs": 5000
}

首批模式:

  • REPLACE:替换全部文本。
  • CLEAR:清空。
  • APPEND:在现有文本后追加。

验证:

  • NONE:只检查系统是否接受输入请求。
  • EXACT:回读文本与目标值相同。
  • NON_EMPTY:只检查结果非空。

密码节点不回读原文,可使用 NONE 或 NON_EMPTY。复杂格式化、剪贴板和模板输入等到实际需要时再增加。

3. 执行规则

  1. 等待唯一、可见、启用且可编辑的目标。
  2. 需要时请求焦点。
  3. 计算最终输入文本。
  4. 最多调用一次输入动作。
  5. 按 verify 回读;提供 after 时继续验证页面条件。

timeoutMs 包含等待、焦点、输入和验证。

4. 结果码

  • INPUT_SENT:输入已分发但未回读验证。
  • OK:输入验证通过。
  • INPUT_VALUE_INVALID
  • TARGET_NOT_FOUND
  • TARGET_AMBIGUOUS
  • TARGET_NOT_EDITABLE
  • ACTION_FAILED
  • VERIFICATION_FAILED

5. 测试

覆盖 REPLACE、CLEAR、APPEND、目标不可编辑、输入失败、回读不一致、密码节点和单次分发。WebView、自定义输入框与常用输入法需要真机验证。