判断页面有没有变化的两种方法: ![]() ![]()
根据比较结果输出信息: 如果RGB值相同,输出’画面无变化’,表示在这5秒内,该位置的颜色没有发生变化。 如果RGB值不同,输出’画面有变化’,表示在这5秒内,该位置的颜色发生了变化。 这段代码常用于自动化测试、监控屏幕内容变化或者实现某些特定的自动化操作,比如在等待某个界面加载完成时,通过检测特定区域的颜色变化来判断页面是否已经加载完毕。 // 方法2:这里是多个截图点进行检验 // 定义要检查的坐标列表,, var checkPoints = \[ {x: 0.8194, y: 0.5254}, {x: 0.2847, y: 0.8047}, // 添加更多坐标点 // ... 其他坐标 \]; // 首次截图并获取各点RGB值 // 定义要检查的坐标列表 var checkPoints = [ {x: 0.8194, y: 0.5254}, {x: 0.2847, y: 0.8047} // 添加更多坐标点 // ... 其他坐标 ]; // 首次截图并获取各点RGB值 var img = screen.screenShotFull(); var rgbValues = []; for (var point of checkPoints) { var rgb = img.getPointRGB(point.x, point.y); rgbValues.push(rgb); } console.log("首次截图RGB值:", rgbValues); // 等待一段时间后再次截图 sleep.millisecond(10000); var imgNext = screen.screenShotFull(); // 比较两次截图的RGB值 var isSceneChanged = false; for (var i = 0; i < checkPoints.length; i++) { var newRgb = imgNext.getPointRGB(checkPoints.x, checkPoints.y); if (rgbValues[0] !== newRgb[0] || rgbValues[1] !== newRgb[1] || rgbValues[2] !== newRgb[2]) { isSceneChanged = true; break; // 发现变化就跳出循环 } } if (isSceneChanged) { console.log('画面有变化'); } else { console.log('画面无变化'); } //这是另一种方法 主要作用: 定义检查点:定义一个包含多个坐标点的数组checkPoints,每个坐标点表示屏幕上的一个相对位置。 拍摄首次截图:拍摄屏幕的全屏截图。 获取RGB值:遍历checkPoints数组,获取每个检查点的RGB颜色值,并将这些值存储在rgbValues数组中。 等待10秒:让脚本暂停10秒,等待屏幕内容可能发生变化。 拍摄第二次截图:再次拍摄屏幕的全屏截图。 获取新RGB值:遍历checkPoints数组,获取第二次截图中每个检查点的RGB颜色值。 比较RGB值:比较两次截图中每个检查点的RGB值是否相同。 输出结果:根据比较结果输出’画面有变化’或’画面无变化’。 主要特点: 多点检测:检查多个特定位置的颜色变化。 等待时间较长:等待时间为10秒。 更全面的检测:通过多个检查点可以更全面地监控屏幕内容的变化。 总结 第一段代码:单点检测,等待时间为5秒。 第二段代码:多点检测,等待时间为10秒。 第二段代码由于检查了多个位置,因此能够更全面地检测屏幕内容的变化,而第一段代码则只关注一个特定位置。 |
欢迎光临 信息发布软件,b2b软件,广告发布软件 (http://www.postbbs.com/) | Powered by Discuz! X3.2 |