怎么获取屏幕所有的文体 找查到包含某个字串的控件 并且点击
第 1 条补充
· 2 个月前
启动一个子线程 获取屏幕所有的文体 找查到包含某个字串的控件 并且点击
第 2 条补充
· 2 个月前
查找所有的图片 点击第四张图片
回答
文档地址 https://docs.hamibot.com/
你可以使用以下代码来获取屏幕上所有的文本控件,然后查找包含某个字符串的控件并点击:
// 获取屏幕上所有的文本控件
var textViewList = className("TextView").find();
// 遍历所有文本控件
textViewList.forEach(function(tv) {
// 获取控件的文本内容
var textContent = tv.text();
// 判断文本内容是否包含某个字符串(例如:"目标")
if (textContent.includes("目标")) {
// 点击符合条件的控件
tv.click();
// 可以选择退出循环,只点击第一个匹配项
return;
}
});
说明:
className("TextView").find()
:找到屏幕上的所有文本控件。tv.text()
:获取每个控件的文本内容。textContent.includes("目标")
:检查文本是否包含指定的字符串(这里是“目标”)。tv.click()
:点击符合条件的控件。
如果你希望点击多个匹配的控件,可以移除 return;
语句。这样会点击所有符合要求的控件。
补充回答 1
文档地址 https://docs.hamibot.com/
你可以使用 Hamibot 提供的 threads.start()
方法来启动一个子线程,在子线程中获取屏幕上所有的文本控件,查找包含某个字符串的控件并点击。以下是一个示例代码:
// 启动一个子线程
threads.start(function () {
// 获取屏幕上所有的文本控件
var textViewList = className("TextView").find();
// 遍历所有文本控件
textViewList.forEach(function (tv) {
// 获取控件的文本内容
var textContent = tv.text();
// 判断文本内容是否包含某个字符串(例如:"目标")
if (textContent.includes("目标")) {
// 点击符合条件的控件
tv.click();
// 可以选择退出循环,只点击第一个匹配项
return;
}
});
});
说明:
threads.start(function () { ... })
:启动一个子线程,避免阻塞主线程。className("TextView").find()
:找到屏幕上的所有文本控件。tv.text()
:获取每个控件的文本内容。textContent.includes("目标")
:检查文本是否包含指定的字符串(这里是“目标”)。tv.click()
:点击符合条件的控件。
如果需要点击多个匹配的控件,可以移除 return;
语句,这样会依次点击所有符合要求的控件。
补充回答 2
文档地址 https://docs.hamibot.com/
你可以通过以下代码查找屏幕上所有的图片控件(ImageView),并点击第四张图片:
// 查找所有图片控件
var images = className("ImageView").find();
// 判断是否找到了至少四张图片
if (images.length >= 4) {
// 点击第四张图片(索引为3,因为数组从0开始)
images[3].click();
} else {
toast("图片数量不足四张");
}
说明:
className("ImageView").find()
:获取屏幕上的所有图片控件。images.length
:检查图片的数量。images[3]
:访问数组中的第四个元素(索引为3)并调用click()
方法进行点击。- 如果图片数量不足四张,则会提示“图片数量不足四张”。
确保在 Hamibot 环境中已启用无障碍服务,以便脚本能正确找到控件并执行操作。
ℹ️ 本回答由 AI 生成,内容仅供参考