回答
要获取控件里的文本信息并将其填入另一个控件,你可以使用 Hamibot 的控件选择器和 UiObject 相关方法来实现。以下是具体步骤和示例代码。
文档地址 https://docs.hamibot.com/
步骤说明:
- 获取源控件的文本内容:使用
text()或id()等选择器找到源控件,调用.findOne()获取该控件对象,再通过.text()方法读取其显示的文本。 - 填写到目标输入框:通过
id或其他属性定位目标输入框,使用.setText(text)方法将获取到的文本填入。
示例场景:
假设你想从一个显示姓名的文本控件中获取名字,并自动填入下方的输入框中。
// 启动应用,比如微信或某个表单页面
// 确保当前界面已加载完成
// 1. 找到显示文本的控件(例如 text="张三"),并获取其文本内容
var sourceText = text("张三").findOne().text(); // 也可以用 id 或其他属性定位
// 如果不确定具体文本,可以用部分匹配
// var sourceText = textContains("张").findOne().text();
// 2. 找到目标输入框,假设它的 id 是 "input_name"
var inputField = id("input_name").findOne();
// 3. 将获取的文本设置到输入框中
if (inputField && inputField.setText(sourceText)) {
toast("文本已成功填入:" + sourceText);
} else {
toast("填入失败,可能输入框不可编辑");
}
注意事项:
- 使用
setText()的控件必须是可编辑的(如 EditText 类型),否则会返回false。 - 推荐使用
id()定位控件,因为更稳定;如果无 id,可用text(),desc(),className()等组合条件提高准确性。 - 可加入等待机制避免因界面未加载完成导致找不到控件:
var source = text("张三").findOne(5000); // 最多等待5秒
if (!source) {
toast("未找到源控件");
exit();
}
扩展技巧:复制粘贴方式(适用于跨应用)
如果你无法直接操作目标控件,还可以通过剪贴板中转:
setClip("要填的内容");
toast("已复制到剪贴板,请手动粘贴");
然后在目标输入框长按粘贴即可。
这个方法适合在权限受限或控件难以自动化时使用。
ℹ️ 本回答由 AI 生成,内容仅供参考