社区
教程
Wiki
注册
登录
创作新主题
社区所有版块导航
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
反馈
公告
社区推广
产品
短视频
印度
印度
一周十大热门主题
机器学习学术速递[9.24]
【广发金工】量化·精选·致远-2026深度研究十七:StableAlpha:更稳定的深度学习因子
【重磅生信课】生信入门与AI, Python与R语言,基因家族、转录组、T2T与比较基因组学、WGS...
闲鱼上的ChatGPT代充暗号,已经进化到“奥特曼充电”了
〖今日火爆趋势〗GitHub TOP10(2026年09月24日)
上线12天跑赢ChatGPT!Meta爆款AI自曝老底,灵魂文件来自OpenClaw
企业 AI 能力中枢系统开源!面向 Java 企业系统,快速、安全完成业务系统智能化改造|gitcc...
用雪花 id 和 uuid 做 MySQL 主键,被领导怼了
【方正金工】再探遗传规划因子挖掘:基于LLM增强的遗传规划框架——机器学习选股系列研究之四
挖到一个GitHub宝藏:一键下载全网电子书,2.4万本!
关注
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
登录后回复