一、背景介绍
咪咕爱看是中国移动旗下的一款视频播放软件,可以观看众多电影、电视剧、综艺视频,并且移动环境下观看视频还能获得能量,能量可以兑换流量和消费券。它曾经是一款良心APP,不过经过多年调整,现在大部分电影都需要VIP观看,而且能量也不能自由兑换了,必须掐着十点去抢名额。
今天我们airtest应用第二个例子,就是使用airtest自动化我们能量兑换这个操作,免去我们手工操作的辛苦。注意:虽然这个过程可以自动化,但是受技术限制,目前并没有手工快,甚至还要慢一些。
二、实现过程
因为能量兑换这个页面是一个网页,所以我们不能使用poco来定位UI,只能使用纯图像识别技术。首先我们进到这个页面,假设我们要兑换3800能量。因此我们要先检查这个兑换是否可用。
这时候我们点击左侧的exists命令,根据提示截取整个左边的这块:
如果存在的话,我们就点击“立即兑换”这个按钮。由于Airtest图像脚本中,图片被分为9个位点:
本例子中的“立即兑换”按钮,刚好位于8的位置。所以我们要切换为代码模式,复制exists这行代码,改为touch方法,并设置target_pos=8:
点击按钮之后就会弹一个确认的窗,我们需要模拟点击这个确定。这里常规的做法是等待“确认”这个按钮:
然后touch这个按钮。考虑到wait的速度较慢,我们也可以改用sleep(),速度会快很多。点击确认之后,会发送网络请求。我们会得到两种结果,一种是成功兑换,会弹出一个toast。还有一种是失败,会弹个窗让你确认。简便起见,我们这边先sleep()一下,等待网络请求。然后检查页面上是否有“我知道了”这个元素,没有的话就假定成功了,否则就是失败了,我们点击这个按钮取消弹窗,并进入下一次循环。整个过程的核心代码如下:
三、总结
今天的内容比较简单,通过简单的几个动作,例如exists,wait,sleep,touch就实现了我们模拟点击,兑换能量的整个过程。想对Airtest图像脚本有更多了解,可查阅官方文档。