AiWork判断屏幕是否发生了变化

AiWork简介

AIWork是一款安卓和IOS手机的自动化测试开发引擎,采用免root技术,自研IDE代码编辑器,自研图色引擎2.0,自研agent adb代理模式,自研hid硬件自动化,脚本代码采用javascript脚本代码(rhino引擎),提供了众多的工具,方便自动生成js代码。

AiWork开发文档

在官方文档的基础上,进行重新排版和优化。
一个优雅的文档,对于开发体验的提升,是效果显著的。
永久域名:aiwork.wiki

需求

有时候启动一个脚本,无法判断脚本是否成功执行。
因为AiWork的异常捕获不完善,有的错误无法捕捉。就需要自己实现一些判断。

例如,在启动脚本前,先进行屏幕截图。
脚本启动后,再截图,对比两次图片的变化。
如果图片没变,说明大概率是脚本启动失败了。

实现

/**
 * @author 飞云
 * @wechat imfeiyun
 * @wiki  http://aiwork.wiki
 * @link  http://www.feiyunjs.com
 */
 
 
// 截取屏幕中心的矩形
let fullScreenImg = screen.screenShotFull()
let centerSmallImg = fullScreenImg.cutImage(screenWidth / 2 - rectW / 2, screenHeight / 2 - rectW / 2, screenWidth / 2 + rectW / 2, screenHeight / 2 + + rectW / 2)   // 截取屏幕中心的一个正方形(坑点:正确的是左顶右底,文档里是左顶宽高)
!fullScreenImg.isNull() && fullScreenImg.recycle();

// log(centerSmallImg.save('/sdcard/auto/centerSmallImg.jpg'))


// 等一会判断屏幕是否变化
sleep.millisecond(2 * 1000)


// 在大图中找小图
fullScreenImg = screen.screenShotFull()
let findImgRes = opencv.findImageOneSift(fullScreenImg, centerSmallImg, 60, 50, [0.3, 0.3, 0.8, 0.8])
if (findImgRes && findImgRes.score() > 0.8) {
    console.log('屏幕中心并没有变化')
    console.log(findImgRes.score())
} else {
    console.log('屏幕中心发生了变化')
}
!fullScreenImg.isNull() && fullScreenImg.recycle();
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值