输入信息 (Selector.input)
Selector.input
声明
node.selector():input(msg)
参数
| 参数 | 类型 | 是否必填 | 说明 |
|---|---|---|---|
| msg | string | 否 | 输入的信息,空字符串表示清空输入框(默认) |
返回值
| 类型 | 说明 |
|---|---|
| Selector | 返回控件查找器,用于链式编程 |
说明
向控件输入信息约束(动作约束)。
技术原理:
- 基于 Android AccessibilityService 的
performAction(ACTION_SET_TEXT)实现 - 动作在
find()执行时触发,不是调用input()时立即执行 - 执行顺序:查找匹配控件 → 执行输入动作 → 返回控件对象
执行时机:
-- input() 只是添加约束,不会立即输入
local selector = Selector():id("search"):input("关键词") -- 此时还没有输入
-- find() 时才真正执行输入
local node = selector:find() -- 此时执行:查找 → 输入 → 返回
与 Node.input() 的区别:
selector:input(text):find()- 查找时自动输入,一步完成node:input(text)- 对已找到的控件手动输入
注意事项:
- 控件必须是可编辑的(editable=true)
- 空字符串
""表示清空输入框
待实现
该接口正在开发中。
示例
local node = require("node")
-- 查找到指定控件,输入文本
node.selector():id("com.example:id/search_bar_text"):input("自在老师"):find()
-- 清空输入框
node.selector():id("com.example:id/search_bar_text"):input(""):find()
AScript 对应
# AScript (Python)
from ascript.android.node import Selector
Selector().id("com.aojoy.airscript:id/search_bar_text").input("自在老师").find()