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();