基于Python+Appium实现京东双十一自动领金币功能


Posted in Python onOctober 31, 2019

背景:做任务领金币的过程很无聊,而且每天都是重复同样的工作,非常符合自动化的定义;

工具:python,appium,Android 手机(我使用的是安卓6.0的),数据线一根;

开搞前先让手机和电脑连上同一个无线网;

1.抓取京东APP的包名和Activity

先连接手机 windows+r输入cmd进入命令行页面

输入:adb devices查看设备是否链接;

输入:adb shell pm list package -3查看手机里面的第三方安装包;

很明显可以看出来京东的package是:com.jingdong.app.mall

基于Python+Appium实现京东双十一自动领金币功能

输入:adb shell monkey -v -v -v -p com.jingdong.app.mall 10 ,使用monkey命令运行京东APP在运行日志中找到Activity,(这是我至今为止找Activity最好用的方法,有更好可以留言。)在日志最后面找到包名,包名的“/” 后面就是Activity;

基于Python+Appium实现京东双十一自动领金币功能

2.编写python代码,编写一段打开京东APP的代码;

deviceName默认端口号是5555

from appium import webdriver
desired_caps ={
'platformName':'Android',
'deviceName':'192.168.60.41:5555',#手机ip地址
'platformVersion':'6.0',#Android系统版本
'appPackage':'com.jingdong.app.mall',
'appActivity':'.main.MainActivity'
}
dr=webdriver.Remote('http://127.0.0.1:4723/wd/hub',desired_caps)#地址为appium地址

3.打开appium,简单设置后开启appium;

基于Python+Appium实现京东双十一自动领金币功能

点击右上角三角开启;

4.使用uiautomatorviewer.bat 工具获取APP内按钮定位;

uiautomatorviewer.bat 工具比较辣鸡,也可能因为我比较辣鸡,就是很多页面获取不到,获取到了也找不到按钮的class,id等等,说以我这里使用的是坐标点击。uiautomatorviewer.bat工具在android-sdk\tools目录下;

eg:基于Python+Appium实现京东双十一自动领金币功能

例如点击全民养红包:TouchAction(dr).press(x=950,y=1530).release().perform()

press(x=x,y=y)里面的填写的是坐标点,这个点坐标需要控制在[543,1461][1053,1617]之内;

5.思路:

点击活动 -- 点击全民养红包 -- 点击领取金币 -- 点击任务 --点击返回 -- 点击领取金币 -- 重定向至点击任务;

详细代码如下(个人自嗨的代码仅供参考):

from appium.webdriver.common.touch_action import TouchAction
from time import sleep
from appium import webdriver
desired_caps ={
'platformName':'Android',
'deviceName':'192.168.60.41:5555',#手机ip地址
'platformVersion':'6.0',#Android系统版本
'appPackage':'com.jingdong.app.mall',
'appActivity':'.main.MainActivity'
}
dr=webdriver.Remote('http://127.0.0.1:4723/wd/hub',desired_caps)#地址为appium地址
sleep(8)
x=dr.get_window_size()['width']
y=dr.get_window_size()['height']
 
print('点击双11活动')
TouchAction(dr).press(x=813,y=1250).release().perform()
sleep(15)
 
# 点击红包活动[543,1461][1053,1617]
print('点击红包活动')
TouchAction(dr).press(x=950,y=1530).release().perform()
sleep(15)
 
# 点击任务列表[867,1656][1065,1776]
print('点击任务列表')
TouchAction(dr).press(x=950,y=1710).release().perform()
sleep(10)
 
#向上划拉一点点
def swipe_up():
 print('向上划拉一点点')
 x=500
 y1=1500
 y2=1100
 dr.swipe(x,y1,x,y2,500)
 sleep(1)
 
#点击任务,进入详情,返回任务页,点击领取金币
def cleck_rw(NO_,number,size):
 for i in range(number):
  #点击任务
  print('第{}次点击任务{}'.format(i+1,NO_))
  TouchAction(dr).press(x=950, y=size).release().perform()
  sleep(2)
 
  # 返回上一页
  print('返回活动页')
  dr.back()
  sleep(3)
 
  # 点击朕知道了[414,1314][660,1404]
  print('点击朕知道了')
  TouchAction(dr).press(x=550, y=1350).release().perform()
  sleep(2)
 
def renwu(NO_,number,size,swipe_=0):
 if number == 0:
  print('pass 任务.{}'.format(NO_))
 else:
  if swipe_ ==1 :
   cleck_rw(NO_, number, size)
  elif swipe_ ==0:
   cleck_rw(NO_, number, size)
 
def begin (num1=25,num2=3,num3=25,num4=4,num6=4):
 #活动逛好店num=25 size=[813,741][1038,852]
 renwu(1,num1,800)
 print('活动逛好店')
 
 # 精彩会场num=25 size=[813,963][1038,1074]
 renwu(2,num2, 1000)
 print('精彩会场')
 
 # 精选好物num=25 size=[813,1185][1038,1296]
 renwu(3,num3, 1250)
 print('精选好物')
 
 # 更多互动num=25 size=[813,1407][1038,1518]
 renwu(4,num4, 1450)
 print('更多互动')
 
 #好友助力[813,1629][1038,1740]
 
 #推荐直播/视频 num=4 size=1593 1703
 renwu(6,num6, 1650,1)
 print('直播视频')
 
if __name__ == '__main__':
 begin()

总结

以上所述是小编给大家介绍的基于Python+Appium实现京东双十一自动领金币功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

Python 相关文章推荐
小结Python用fork来创建子进程注意事项
Jul 03 Python
python中将字典转换成其json字符串
Jul 16 Python
Python读写Excel文件方法介绍
Nov 22 Python
Python 专题二 条件语句和循环语句的基础知识
Mar 19 Python
python实现发送邮件功能代码
Dec 14 Python
python实现拓扑排序的基本教程
Mar 11 Python
python使用Flask操作mysql实现登录功能
May 14 Python
python 将print输出的内容保存到txt文件中
Jul 17 Python
Django错误:TypeError at / 'bool' object is not callable解决
Aug 16 Python
python3 webp转gif格式的实现示例
Dec 10 Python
pytorch进行上采样的种类实例
Feb 18 Python
解决Jupyter无法导入已安装的 module问题
Apr 17 Python
如何关掉pycharm中的python console(图解)
Oct 31 #Python
使用python实现男神女神颜值打分系统(推荐)
Oct 31 #Python
python实现根据文件格式分类
Oct 31 #Python
Python简易计算器制作方法代码详解
Oct 31 #Python
python3 pillow模块实现简单验证码
Oct 31 #Python
利用Python校准本地时间的方法教程
Oct 31 #Python
python实现计算器功能
Oct 31 #Python
You might like
星际争霸 Starcraft 秘技补丁
2020/03/14 星际争霸
php和js交互一例-PHP教程,PHP应用
2007/01/03 PHP
PHP中构造函数和析构函数解析
2014/10/10 PHP
PHP中mysqli_get_server_version()的实例用法
2020/02/03 PHP
JQuery实现倒计时按钮具体方法
2013/11/14 Javascript
javascript自动给文本url地址增加链接的方法分享
2014/01/20 Javascript
jQuery实现异步获取json数据的2种方式
2014/08/29 Javascript
javascript实现行拖动的方法
2015/05/27 Javascript
JS实现的3D拖拽翻页效果代码
2015/10/31 Javascript
laydate.js日期时间选择插件
2017/01/04 Javascript
js canvas实现QQ拨打电话特效
2017/05/10 Javascript
浅谈箭头函数写法在ReactJs中的使用
2017/08/22 Javascript
nodejs 图解express+supervisor+ejs的用法(推荐)
2017/09/08 NodeJs
微信小程序实现列表下拉刷新上拉加载
2020/07/29 Javascript
js中事件对象和事件委托的介绍
2019/01/21 Javascript
react-intl实现React国际化多语言的方法
2020/09/27 Javascript
Python 字符串定义
2009/09/25 Python
举例讲解Python程序与系统shell交互的方式
2015/04/09 Python
对于Python的Django框架部署的一些建议
2015/04/09 Python
深入理解Python装饰器
2016/07/27 Python
python 函数传参之传值还是传引用的分析
2017/09/07 Python
Python实现App自动签到领取积分功能
2018/09/29 Python
Python partial函数原理及用法解析
2019/12/11 Python
tensorflow多维张量计算实例
2020/02/11 Python
Python关于反射的实例代码分享
2020/02/20 Python
LEGO玩具英国官方商店:LEGO Shop GB
2018/03/27 全球购物
迪奥美国官网:Dior美国
2019/12/07 全球购物
自学考试自我鉴定范文
2013/09/26 职场文书
电大会计学自我鉴定
2014/02/06 职场文书
超市国庆节促销方案
2014/02/20 职场文书
农民工工资支付承诺函
2014/03/31 职场文书
争当四好少年演讲稿
2014/09/13 职场文书
法学专业大学生实习自我鉴定
2014/10/05 职场文书
中标通知书
2015/04/17 职场文书
2016党员入党决心书
2015/09/22 职场文书
2015年度女工工作总结
2015/10/22 职场文书