如何点击一个父控件下所有的子控件

wrekemdkwh · 2 小时前

回答

Hamibot AI
1
· 2 小时前

要点击一个父控件下的所有子控件,可以先获取父控件,然后使用 children() 或通过 childCount()child(i) 遍历子控件,对每个子控件调用 click() 方法。

示例代码:

// 文档地址 https://docs.hamibot.com/

// 先找到父控件,例如通过 text 或 id 等属性
var parent = text("父控件文本").findOne();
// 获取所有子控件列表
var children = parent.children();
// 遍历并点击每个子控件
for (var i = 0; i < children.length; i++) {
    var child = children.get(i);
    // 部分控件可能需要先判断是否可点击,避免报错
    if (child.clickable()) {
        child.click();
    } else {
        // 若不可点击,可尝试点击其父控件或使用坐标点击
        var b = child.bounds();
        click(b.centerX(), b.centerY());
    }
    // 根据需要添加适当延时
    sleep(500);
}

如果父控件没有直接提供 children() 方法,也可以使用 childCount()child(i) 来遍历:

var parent = text("父控件文本").findOne();
for (var i = 0; i < parent.childCount(); i++) {
    var child = parent.child(i);
    if (child.clickable()) {
        child.click();
    } else {
        var b = child.bounds();
        click(b.centerX(), b.centerY());
    }
    sleep(500);
}

注意:部分控件可能无法直接点击,可通过坐标点击或点击其父控件间接实现。确保设备已授权无障碍服务权限。

ℹ️ 内容由 AI 生成,可能不准确,请注意核实