社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

Python教你迅速成为蚂蚁森林排行榜第一名

Crossin的编程教室 • 6 年前 • 619 次点击  
最近在家远程工作,结果作息更混乱了,早上起不来,导致我蚂蚁森林能量天天被偷,严重影响我沙漠造树“大业”。于是我决定用python写个自动偷能量的程序,每天早上定时偷取好友能量,“称霸”蚂蚁森林。(本文仅为自动化测试技术研究,请勿滥用)

环境配置

首先需要安装配置好appium自动化测试工具。appium是一个开源、跨平台的测试框架,可以用来测试原生及混合的移动端应用,支持IOS、Android及FirefoxOS平台。大致流程:先在官网(appium.io)下载安装appium,然后安装Android SDK(我的方法是安装Android Studio,在它里面可以安装Android SDK),最后再安装JAVA,并配置JAVA_HOME和CLASSPATH两个参数的环境变量,然后就可以使用appium啦!

使用介绍

安装appium有两个目的,一是使用python的appium模块需要先打开appium客户端,否则无法使用;二是便于我们查找某个app某个界面的元素,初次打开时如图所示:

点击Start Server v1.8.1
 
点击搜索图标


配置好4个参数,第一个参数是手机操作系统,第二个参数是手机型号,在设置中可以找到,第三、四参数是app的两个特定值,点击start session就可以操控手机了。

 
开发步骤

第一步:appium自动化测试app首先需要找到 ‘appPackage’ 和 ‘appActivity’ 两个参数

这里给大家介绍一种通用的找手机app这两个参数的方法:
1. 先找到获取apk信息工具(android SDK的aapt工具)所在的位置;
2. 下载支付宝app,记住存放位置;
3. 打开命令行,输入以下信息
打码部分是支付宝app所在的位置

在输出信息中可以找到‘appPackage’和‘appActivity’的值:

第二步:打开支付宝,模拟点击,进入蚂蚁森林界面


正常情况下,appium操控打开app时,需要配置一下参数:

但是这种配置方式会默认从头打开app,需要验证各种信息,而且需要重新登录,今天教大家如何避免重新登录,只需添加2个参数就ok:
这样就会避免重新登录了。

下面就是模拟点击元素操作了,找app元素的方法如下:

只需用客户端appium打开手机APP,然后将鼠标放在需要点击的部位,在右侧就能找到该部位的元素了。然后依次点击下图按钮:
代码如下:
 
第三步:依次点击进入好友蚂蚁森林主页
 

如图所示,我需要点击一次点击进入每个好友的主页,我采取的方式是只点击进入第一个框所在的坐标,然后模拟向上滑动1个框的高度,这样依次就可以点击到每个好友了,代码如下:

需要注意的是,个人的主页是点不开的,但是不用做相应处理,因为点不进去就会在当前界面进行检测,判作无能量球,继续滑动到下一个。

第四步:检测有无可收取得能量
 

经过分析元素,蚂蚁森林主页可以分为2类情况,第一种是没有能量球,第二种是有能量球,判断方法是比较上图中classname的数量,若大于5则代表有能量球,反之则没有,代码如下:

然后再进一步分析能力球能否能收取,很简单,只需要判断每个classname的text是否含有“能量”这2个字就ok了,因为不可收取的能量球不含这两个字,代码如下:

为了防止有的能量没到时间,到最后一个好友时,需要返回顶端重新开始检测,我采取的方式是连续点击两次左上角的返回键,然后再重复上述的点击“查看更多好友”步骤,代码如下:

第五步:效果展示


好了,这下再也不用担心我的小树苗了!

文中使用的代码已上传,获取请在公众号“Crossin的编程教室”里回复关键字: 200214



Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/54727