转自:Crossin的编程教室

-

最近在家远程工作,结果作息更混乱了,早上起不来,导致我蚂蚁森林能量天天被偷,严重影响我沙漠造树“大业”。

于是我决定用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某个界面的元素,初次打开时如图所示:

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

开发步骤

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

这里给大家介绍一种通用的找手机app这两个参数的方法:

1. 先找到获取apk信息工具(android SDK的aapt工具)所在的位置;

2. 下载支付宝app,记住存放位置;

3. 打开命令行,输入以下信息

在输出信息中可以找到

appPackage 和 appActivity的值:

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

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

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

这样就会避免重新登录了。

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

只需用客户端appium打开手机APP,然后将鼠标放在需要点击的部位,在右侧就能找到该部位的元素了。然后依次点击下图按钮:

代码如下:

第三步:依次点击进入好友蚂蚁森林主页

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

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

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

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

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

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

第五步:效果展示

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

文中使用的代码,请在公众号后台回复关键字获取: 蚂蚁森林

感谢阅读

推荐阅读:

1:真实的上海IT圈:张江男vs漕河泾男

2:真实的北京IT圈:后厂村姑 vs 后厂村花?

3:为什么你的提问没人解答?

4:Python爱好者社区历史文章合集

好看请点这里~

python支付宝蚂蚁森林_Python教你迅速成为“蚂蚁森林排行榜”第一名相关推荐

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

    最近在家远程工作,结果作息更混乱了,早上起不来,导致我蚂蚁森林能量天天被偷,严重影响我沙漠造树"大业".于是我决定用python写个自动偷能量的程序,每天早上定时偷取好友能量,&q ...

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

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者:作者锅g头/Crossin的编程教室 PS:如有需要Python学习 ...

  3. python支付宝自动转账_python实现支付宝转账接口

    python实现支付宝转账接口 发布时间:2020-09-14 03:23:42 来源:脚本之家 阅读:128 由于工作需要使用python开发一个自动转账接口,记录一下开发过程. 首先需要在蚂蚁金服 ...

  4. python支付宝自动支付_python 调用支付宝支付

    支付宝接口集成,本地环境调试支付请求 1.首先登录 蚂蚁金服网站,也就是支付宝开发者平台 登录蚂蚁金服开发者平台后,创建沙箱应用 开发者平台 也就是支付宝给开发者提供的调试环境应用 沙箱测试应用 2. ...

  5. python如何高效办公_Python教你高效办公,自制屏幕翻译工具

    python视频教程栏目为大家介绍Python自制屏幕翻译工具的方法. 免费推荐:python视频教程 1. 场景 大家如果平常遇到不认识的英文,相信大部分的人都会复制内容后,使用翻译软件,或者拷贝到 ...

  6. python课件百度文库_python教-教学课件.doc

    python教-教学课件 第五单元 进阶程序设计(总10课时) 选择编程语言(1课时) 一.教学目标 1.了解程序设计语言和两种翻译方式:了解Python背景.功能.安装,熟悉Python编程环境:编 ...

  7. python代码写名字_python|教你一行代码用Ta的名字比心

    关注我们:科技与Python 故事是这样的:你的女朋友名字叫andy,由于她学习上的需求,需要学习一些编程.(当然作为男朋友,是很有义务帮女朋友解决问题的.) 教他写程序的时候,如果先秀一下这行代码, ...

  8. python 自动发微博_Python 教你自动发微博,每日一句英语

    作者:周萝卜 最近在研究用 Python 来制作各个类别的机器人,今天先来分享一个自动发布新浪微博的机器人. 基本思路 其实要实现一个简单的自动发布微博机器人还是不难的,只需要每天按时找好要发布的素材 ...

  9. 用python画太阳花原理_Python——教你画朵太阳花

    用python中的turtle函数画个太阳花,有以下几个步骤 1.首先,我们在开始中找到Python语言的IDLE软件脚本 2.然后出现该软件界面,如图,点击上面的Eile 3.然后在栏目中点击New ...

  10. python 获取方法名_python 动态获取当前运行的类名和函数名的方法

    一.使用内置方法和修饰器方法获取类名.函数名 python中获取函数名的情况分为内部.外部,从外部的情况好获取,使用指向函数的对象,然后用__name__属性 复制代码代码如下: def a():pa ...

最新文章

  1. union all与空字段的一种用法
  2. 记录一下python绘制地图
  3. MFC最小程序(不使用应用程序向导)
  4. Qt Creator预览版
  5. 中blur函数_Comonad在图像处理中的应用
  6. python的数据库应用,Python数据库应用
  7. 使用oracle客户端与PLSQL连接ORACLE数据库软件安装过程
  8. UVA 1048 Low Cost Air Travel 最短路
  9. 递归系列——递归树与函数记忆化
  10. JavaWeb框架学习文章索引
  11. 什么是一级域名、二级域名?
  12. Unity打包安卓出现报错 Exception: Unknown CPU architecture for libraryxxx.a
  13. 联想拯救者 独显模式下亮度无法调节 解决方法记录
  14. ExcelJS 导入导出excel带下拉框筛选数据
  15. 牛客网:智力题+判断推理+数量关系(1)
  16. HTTPS背后的加密算法
  17. ROS 重名问题解决
  18. Spring内部方法性能监控器
  19. 手游外挂入侵(三)外挂接口服务提供
  20. Maven 加入高德地图,类推百度地图

热门文章

  1. 海康SDK-javademo实现报错问题解决
  2. mybatis-plus代码自动生成器
  3. Unity3D 汉化
  4. 哪里有全面的几何画板课件制作教程
  5. 几何画板如何生成三角函数图像
  6. 【归纳】C语言基础知识回顾
  7. 2022江苏省大学生电子设计竞赛(TI杯)赛后回顾(江苏省二等奖)
  8. android开机动画修改实战(bootanimation)
  9. 数据结构严蔚敏算法设计习题解答(逐渐更新)(更新于2020.11.20)
  10. 《数据结构 严蔚敏C》期末高频考题整理(含详解)