转自:程序猿Leo
众所周知,现在随着年轻人 交越来越少和个性越来越独立,单身狗们也与日俱增,但是出于某些原因,很多人还是渴望找到对象的!
今天呢,就给大家带来一款python利器Airtest和一个“soul”App自动群发程序的讲解,有助于广大单身狗们早日找到聊天对象,把妹撩汉一举拿下。
01 神奇的Airtest
市面上主流的用于手机办公的自动化工具有很多,那么在众多工具中要怎么选型呢?我们可以对比下最主流的Appnium和Airtest:
Appnium和Airtest都封装了各自较好的API,但是Appnium不支持基于图形识别的定位元素,而且python操作较为复杂,而Airtest正好弥补了这两点,对新手的上手操作提供了很大的空间。
Airtest起初是为了游戏的自动化测试开发的,现在已经完备了3D游戏/App/微信小程序等其他引擎的测试,且可用于爬虫,比较强大。而它的不足之处在于图片识别和元素定位遍历搜索速度较慢,且元素属性值相同的情况下可能会判断错误需注意。
再来看一下这个界面:
Airtest辅助框区:常用操作功能区
Log查看窗区:运行日志区
设备窗区:手机屏幕区
Poco辅助窗区:App页面布局信息查看区
Airtest辅助框区是方便为不会python的新手提供的,左侧边栏有各类基本UI操作类型,如touch,swipe,exist,text,keyevent等等,选择任意操作类型。
02 准备工作
本次我们使用的是安卓真机操作,当然你也可以使用模拟器来进行操作。手机上我们要设置三个点便于与电脑的连接和调试。
首先点其他设置里的开发者选项,点击允许,然后中间的USB调试和最下面的禁止权限监控也允许。
然后我们点IDE右上角的连接手机连通之后,它会自动给我们安装两个软件,一个Yosemite输入法和PocoService,允许就可以了,并把默认输入法设成Yosemite。
同普通python项目一样,我们需要单独为这个工程设置一个python环境,我这里新建虚拟环境之后,激活,需要安装3个库airetst/poco/pocoui
03 编写代码30行搞定
1).新建一个air项目
它会自动给我们补充文首代码。
2).然后我们来启动App
start_app(“App包名”)
那么我们怎么来知道包名呢?
devs = device
print(devs.list_app(third_only=True))
然后我们在控制台里Ctrl+F搜索“soul”结果得到这个App的包名就是”cn.soulapp.android”,将它填入上述参数中。
3).接着我们就要利用poco这个强大的UI自动化框架了
它提供了丰富的API操作页面UI元素,便于处理复杂的UI交互操作。
通过这两行代码来对Poco这个工具对象实例化,参数意为可用输入框,不实时截屏。
按正常的操作逻辑走,我们要点一个聊天用户的头像或昵称发送消息返回,再点下一个用户,依次循环往复。
那我们首先来观察用户昵称这一元素(这里我们需要在Poco辅助框里选Android才可以定位元素查看下面的UI树,锁形图标表示点击之后不会在手机上执行动作,靶形图标表示选中视察这个元素):
我们再点其他用户的昵称,发现他们的name都是“
cn.soulapp.android:id/name”,那我们便可以这一页里的所有用户昵称列表:
li=poco(name=”cn.soulapp.android:id/name”)
因为一页有9个,所以我们需要for循环9次来点击。
4).进入聊天对话框之后
我们先点击输入框,再键入文字内容,再点击发送按钮,再点左上角的返回,四个动作依次执行如下:
如果我们遇到被人拉黑的情况,需要点击弹框的确定按钮,所以需要增加一个有否弹框
无则pass,有则点击
那么这一页发送完,我们需要上滑,翻到新的一页再对新的9个人依次点击发送消息。上滑操作的api是poco.swipe(p),p有两个参数,一个是起始点坐标,一个是终止点坐标,airtest规定图形界面左上角为[0,0],右下角为[1,1],按比例来,那我们从下划到上只需要按Y坐标从0.85滑到0.08即可,如果不准,再微调下,从0.5滑到0.4:
poco.swipe([0.8, 0.85], [0.8, 0.08])
poco.swipe([0.8, 0.5], [0.8, 0.4])
滑完之后我们再执行每页给用户发消息的动作。
有了这个东西,你是不是就省了很多时间去寻找可爱的帅锅美女聊天对象了呢。
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!