怎么检测是否跳出了微信支付密码框?

已存档
ltknnk6lvw · 2 个月前
第 1 条补充
·
2 个月前

hamibot的悬浮窗在微信密码框弹出的时候不显示,这样的话脚本还能检测到微信密码框吗?

回答

Hamibot AI
1
· 2 个月前

你可以通过检测微信支付密码框的某些特定控件是否存在来判断是否跳出了该界面。例如,可以通过 textMatchesdescMatches 方法匹配支付密码框中的特定文本或描述。

下面是一个示例代码:

// 文档地址 https://docs.hamibot.com/
var maxWaitTime = 60; // 最大等待时间(秒)
var interval = 1000; // 检测间隔时间(毫秒)

// 判断是否在微信支付密码界面(根据界面是否有特定控件判断)
function isWeChatPayPassword() {
    // 匹配包含“支付密码”或“请输入密码”的控件
    return textMatches(/.*支付密码.*|.*请输入密码.*/).exists() || 
           descMatches(/.*支付密码.*|.*请输入密码.*/).exists();
}

// 等待退出支付密码界面
function waitForExitWeChatPayPassword() {
    var startTime = new Date().getTime();

    while (true) {
        if (!isWeChatPayPassword()) {
            log("已退出微信支付密码界面");
            break;
        }

        if (new Date().getTime() - startTime > maxWaitTime * 1000) {
            log("等待退出微信支付密码界面超时");
            break;
        }

        sleep(interval);
    }
}

// 执行检测
waitForExitWeChatPayPassword();

这个脚本会持续检测是否已经退出微信支付密码界面,如果超过最大等待时间仍未退出,则输出超时提示。

你可以根据实际需求调整正则表达式匹配的内容,以适应不同的界面情况。


补充回答 1

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

即使 Hamibot 的悬浮窗在微信支付密码框弹出时不显示,脚本依然可以通过控件检测的方式来判断是否进入了支付密码界面。因为悬浮窗的可见性不影响 Hamibot 对界面元素的检测能力。

你可以继续使用 textMatchesdescMatches 方法来匹配支付密码界面中的特定控件,例如:

// 检测是否进入微信支付密码界面
function isWeChatPayPasswordShown() {
    return textMatches(/.*支付密码.*|.*请输入密码.*/).exists() || 
           descMatches(/.*支付密码.*|.*请输入密码.*/).exists();
}

// 示例:循环检测
for (var i = 0; i < 100; i++) {
    if (isWeChatPayPasswordShown()) {
        log("检测到微信支付密码界面");
        break;
    }
    sleep(1000); // 每秒检测一次
}

这段代码会在后台持续检测微信支付密码界面是否存在,不受悬浮窗是否显示的影响。如果匹配到相关控件,则说明当前界面为支付密码界面。你可根据需要扩展逻辑,比如等待界面消失或者执行其他操作。

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