知行编程网知行编程网  2022-04-26 07:00 知行编程网 隐藏边栏 |   抢沙发  95 
文章评分 0 次,平均分 0.0

众所周知,现在随着年轻人社交越来越少和个性越来越独立,单身狗们也与日俱增,但是出于某些原因,很多人还是渴望找到对象的!


今天呢,就给大家带来一款python利器Airtest和一个“soul”App自动群发程序的讲解,有助于广大单身狗们早日找到聊天对象,把妹撩汉一举拿下



01

神奇的Airtest



市面上主流的用于手机办公的自动化工具有很多,那么在众多工具中要怎么选型呢?我们可以对比下最主流的Appnium和Airtest:

有点意思!用Python 一键群发soul消息找对象

Appnium和Airtest都封装了各自较好的API,但是Appnium不支持基于图形识别的定位元素,而且python操作较为复杂,而Airtest正好弥补了这两点,对新手的上手操作提供了很大的空间


Airtest起初是为了游戏的自动化测试开发的,现在已经完备了3D游戏/App/微信小程序等其他引擎的测试,且可用于爬虫,比较强大而它的不足之处在于图片识别和元素定位遍历搜索速度较慢,且元素属性值相同的情况下可能会判断错误需注意。


先进入官方文档了解下它的基本信息http://airtest.netease.com/docs/docs_AirtestIDE-zh_CN/,然后进入IDE官方网站http://airtest.netease.com/免费下载编辑器,下载之后我们打开可以不用登陆直接skip。

有点意思!用Python 一键群发soul消息找对象


再来看一下这个界面:

有点意思!用Python 一键群发soul消息找对象

  • Airtest辅助框区:常用操作功能区

  • 脚本编辑窗区:Python代码编写区

  • Log查看窗区:运行日志区

  • 设备窗区:手机屏幕区

  • Poco辅助窗区:App页面布局信息查看区


Airtest辅助框区是方便为不会python的新手提供的,左侧边栏有各类基本UI操作类型,如touch,swipe,exist,text,keyevent等等,选择任意操作类型。


在右侧屏幕截取图片区域,即可录入想要操作的区域(如一个按钮 或 某个logo),如果觉得截图需要微调,也可以双击编辑区的图片,即可进入微调模块,调整到最适合的尺寸,它会自动生成录制脚本的代码。



02

准备工作



本次我们使用的是安卓真机操作,当然你也可以使用模拟器来进行操作。手机上我们要设置三个点便于与电脑的连接和调试。


首先点其他设置里的开发者选项,点击允许,然后中间的USB调试和最下面的禁止权限监控也允许。

有点意思!用Python 一键群发soul消息找对象

然后我们点IDE右上角的连接手机连通之后,它会自动给我们安装两个软件,一个Yosemite输入法和PocoService,允许就可以了,并把默认输入法设成Yosemite。


同普通python项目一样,我们需要单独为这个工程设置一个python环境,我这里新建虚拟环境之后,激活,需要安装3个库airetst/poco/pocoui


有点意思!用Python 一键群发soul消息找对象


然后我们在编辑器的选项设置里把刚才的环境里的python.exe可执行文件所在的目录Scripts所在的完整目录复制进去就可以了。


有点意思!用Python 一键群发soul消息找对象



03

编写代码30行搞定


1).新建一个air项目

它会自动给我们补充文首代码。

有点意思!用Python 一键群发soul消息找对象

分别为编码/署名作者/导库/自动初始化设备的含义。


2).然后我们来启动App

start_app("App包名")

那么我们怎么来知道包名呢?

devs = device()

print(devs.list_app(third_only=True))

有点意思!用Python 一键群发soul消息找对象

然后我们在控制台里Ctrl+F搜索“soul”结果得到这个App的包名就是"cn.soulapp.android”,将它填入上述参数中。


3).接着我们就要利用poco这个强大的UI自动化框架了

它提供了丰富的API操作页面UI元素,便于处理复杂的UI交互操作。

有点意思!用Python 一键群发soul消息找对象


通过这两行代码来对Poco这个工具对象实例化,参数意为可用输入框,不实时截屏。

按正常的操作逻辑走,我们要点一个聊天用户的头像或昵称发送消息返回,再点下一个用户,依次循环往复


那我们首先来观察用户昵称这一元素(这里我们需要在Poco辅助框里选Android才可以定位元素查看下面的UI树,锁形图标表示点击之后不会在手机上执行动作,靶形图标表示选中视察这个元素):

有点意思!用Python 一键群发soul消息找对象

我们再点其他用户的昵称,发现他们的name都是“cn.soulapp.android:id/name”,那我们便可以这一页里的所有用户昵称列表:

li=poco(name="cn.soulapp.android:id/name")

因为一页有9个,所以我们需要for循环9次来点击。


4).进入聊天对话框之后

我们先点击输入框,再键入文字内容,再点击发送按钮,再点左上角的返回,四个动作依次执行如下:

有点意思!用Python 一键群发soul消息找对象

有点意思!用Python 一键群发soul消息找对象

如果我们遇到被人拉黑的情况,需要点击弹框的确定按钮,所以需要增加一个有否弹框

有点意思!用Python 一键群发soul消息找对象

无则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])

滑完之后我们再执行每页给用户发消息的动作。


有了这个东西,你是不是就省了很多时间去寻找可爱的帅锅美女聊天对象了呢。


近期热门:

还在做重复的劳动,不如用Python自动生成Excel以邮件发送

独家秘籍,50行代码教你买哪只黄金股

简单几步,100行代码用Python画一个蝙蝠侠的logo

N年Python老司机,血泪总结新手常见10大错误

学Python真香!我用100行代码做了个网站,帮人PS旅行图片,赚个鸡腿吃!


有点意思!用Python 一键群发soul消息找对象


点击阅读原文,原创400篇干货文章

本篇文章来源于: 菜鸟学Python

本文为原创文章,版权归所有,欢迎分享本文,转载请保留出处!

知行编程网
知行编程网 关注:1    粉丝:1
这个人很懒,什么都没写

发表评论

表情 格式 链接 私密 签到
扫一扫二维码分享