学完前面的几节知识后,发觉uiautomator里面的方法并不能完全满足我们的要求,因此我们需要其他的东西来帮助我们解决问题
1.图片对比(当有些控件不能识别的时候,比如设置两次壁纸是否一样,我们就可以截图对比设置前后的图片是否一样来判断)
图片对比需要的库为aircv和cv2
使用pip install aircv
将cv2.pyd拷贝至site packages目录下
使用方法
import aircv
读取源文件 src=aircv.imread('test1.png')
读取搜索文件 sch=aircv.imread('test2.png')
对比相似度来判断 result=aircv.find_template(src,sch)
如果result返回值为None,说明图片相似度较低,反之会返回一个字典,我们可以通过confidence的值来判断图片的相似度,可以通过rectangle来获取相似点的坐标并进行后续操作
{'confidence': 0.9999995231628418, 'result': (97, 49), 'rectangle': ((59, 0), (59, 98), (136, 0), (136, 98))}
2.adb常用命令
利用adb实现长按电源键,音量键等操作
step1:先利用adb shell getevent来获取事件的值(需要注意的事,使用getevent时需要先关闭wifi、gps、蓝牙等)
step2:使用adb shell sendevent来模拟按键按下操作,如下为长按电源键
os.system('adb -s %s shell sendevent /dev/input/event5 1 116 1' %self.deviceId) 各个设备获取的值可能不一样,需要注意的事是对应的值为16进制的值