B2B网络软件
标题: 自动化屏幕监控:首次截图与5秒后对比 [打印本页]
作者: YYPOST群发软件 时间: 9 小时前
标题: 自动化屏幕监控:首次截图与5秒后对比
判断页面有没有变化的两种方法:
- // 方法1:这里是多个截图点进行检验
- // 方法1:这里是多个截图点进行检验
- var img = screen.screenShotFull();
- img.save('/sdcard/1.jpg');
- // 只输出一次RGB值
- var rgb = img.getPointRGB(0.822, 0.6427);
- // 可选:注释掉不必要的输出
- // console.log(rgb);
- // console.log(rgb[0]);
- // console.log(rgb[1]);
- // console.log(rgb[2]);
- // 减少等待的时间,比如改为5秒
- sleep.millisecond(5000);
- var imgNext = screen.screenShotFull();
- var rgbb = imgNext.getPointRGB(0.822, 0.6427);
- // 可选:注释掉不必要的输出
- // console.log(rgbb);
- // console.log(rgbb[0]);
- // console.log(rgbb[1]);
- // console.log(rgbb[2]);
- // 比较RGB值
- if (rgb[0] === rgbb[0] && rgb[1] === rgbb[1] && rgb[2] === rgbb[2]) {
- console.log('画面无变化');
- } else {
- console.log('画面有变化');
- }
复制代码根据比较结果输出信息:
如果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://bbs.niubt.cn/) |
Powered by Discuz! X3.2 |