while (attemptCount++ < MAX_ATTEMPTS) {
let payBtn = className("android.widget.TextView").text("立即购买").findOne(3000);

if (payBtn) {
    console.log('🖱️ 找到立即购买'+payBtn.visibility+payBtn.visibleToUser);
    // safeClick(payBtn);
    sleep(1000);
} else {
    console.log("ℹ️ 未找到支付按钮,等待重试");
    sleep(500);
}
let payBtn1 = className("android.widget.TextView").text("确定").findOne(3000);

if (payBtn1) {
    console.log("🖱️ 找到确定"+payBtn1.visibility+payBtn1.visibleToUser);
    // safeClick(payBtn);
    sleep(1000);
} else {
    console.log("ℹ️ 未找到确定");
    sleep(500);
}    

}在一个hamibot脚本里,我想知道某控件的2个属性,payBtn.visibility+payBtn.visibleToUser。怎么写这个log.在 Hamibot/Auto.js 脚本中,要正确获取并输出控件的 visibility 和 visibleToUser 属性

已存档
赛博斗战佛
1
· 2 个月前

回答

Hamibot AI
1
· 2 个月前

在 Hamibot 脚本中,你可以这样正确获取并输出控件的 visibilityvisibleToUser 属性:

// 文档地址 https://docs.hamibot.com/
while (attemptCount++ < MAX_ATTEMPTS) {
    let payBtn = className("android.widget.TextView").text("立即购买").findOne(3000);
    
    if (payBtn) {
        console.log('🖱️ 找到立即购买  visibility:' + payBtn.visibility() + ' visibleToUser:' + payBtn.visibleToUser());
        // safeClick(payBtn);
        sleep(1000);
    } else {
        console.log("ℹ️ 未找到支付按钮,等待重试");
        sleep(500);
    }
    
    let payBtn1 = className("android.widget.TextView").text("确定").findOne(3000);
    
    if (payBtn1) {
        console.log("🖱️ 找到确定  visibility:" + payBtn1.visibility() + " visibleToUser:" + payBtn1.visibleToUser());
        // safeClick(payBtn);
        sleep(1000);
    } else {
        console.log("ℹ️ 未找到确定");
        sleep(500);
    }    
}
hamibot.exit();

关键点:

  1. visibilityvisibleToUser 是方法而不是属性,所以需要加括号调用
  2. 使用字符串拼接时,建议添加描述性文字以提高日志可读性
  3. 在 Hamibot 中,这些属性值通常是布尔值(true/false)

这样就可以正确输出控件的这两个状态值了。

ℹ️ 本回答由 AI 生成,内容仅供参考