怎么获取屏幕所有的文体 找查到包含某个字串的控件 并且点击
第 1 条补充
 · 4 个月前
启动一个子线程 获取屏幕所有的文体 找查到包含某个字串的控件 并且点击
第 2 条补充
 · 4 个月前
查找所有的图片 点击第四张图片
回答
文档地址 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 生成,内容仅供参考