 | |  |  | AIWROK软件找图区分页面变化和卡死状态
- /**
- * 🍎交流 QQ 群 711841924 群一,苹果内测群,528816639
- * 区分页面变化和卡死状态
- */
- // 截取基础图像
- var screenshot = screen.screenShot(1080, 1920, 100);
- var baseMat = screenshot.getMat();
- // 直接使用完整图像作为模板
- var templateBase64 = baseMat.ToBase64();
- printl("模板Base64长度: " + ('' + templateBase64).length);
- // 等待8秒
- printl("等待8秒...");
- sleep.second(8);
- // 再次截取屏幕进行比较
- var newScreenshot = screen.screenShot(1080, 1920, 100);
- var newMat = newScreenshot.getMat();
- // 使用模板匹配检测页面是否发生变化
- var results = opencv.templateMatch(newMat, [templateBase64], 0.6, [0, 0, 1, 1], true);
- if (results && results.length > 0) {
- printl("页面未发生变化,可能卡死!");
- // 修复:正确访问score值,根据Java方法调用规范处理
- var scoreObj = results[0].score;
- var score;
- if (typeof scoreObj === 'function') {
- // 如果是函数,需要正确绑定this上下文
- try {
- score = scoreObj.call(results[0]);
- } catch (e) {
- // 如果call方法失败,尝试直接调用
- try {
- score = scoreObj();
- } catch (e2) {
- // 如果仍然失败,设置默认值
- score = 0;
- printl("无法获取相似度值: " + String(e2));
- }
- }
- } else {
- // 如果是属性,直接使用
- score = scoreObj;
- }
- printl("相似度: " + score);
-
- // 相似度高表示页面没有变化,可能是卡死了
- if (score > 0.95) {
- printl("⚠️ 页面很可能已卡死");
- } else {
- printl("页面保持稳定运行");
- }
- } else {
- printl("页面已发生变化,运行正常");
- }
- // 释放资源
- if (baseMat) {
- baseMat.release ? baseMat.release() : (baseMat = null);
- }
- if (newMat) {
- newMat.release ? newMat.release() : (newMat = null);
- }
- screenshot = null;
- newScreenshot = null;
- printl("页面检测示例结束");
复制代码
| |  | |  |
|