基于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中正则表达式的用法实例汇总
Aug 18 Python
Python中Random和Math模块学习笔记
May 18 Python
Python去除字符串两端空格的方法
May 21 Python
python从入门到精通(DAY 2)
Dec 20 Python
详解Python的Flask框架中的signals信号机制
Jun 13 Python
Python中enumerate函数代码解析
Oct 31 Python
使用Python读取大文件的方法
Feb 11 Python
python 读取txt中每行数据,并且保存到excel中的实例
Apr 29 Python
python实现简单多人聊天室
Dec 11 Python
Pyinstaller打包.py生成.exe的方法和报错总结
Apr 02 Python
Python中将两个或多个list合成一个list的方法小结
May 12 Python
python 窃取摄像头照片的实现示例
Jan 08 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
ThinkPHP自动验证失败的解决方法
2011/06/09 PHP
php一次性删除前台checkbox多选内容的方法
2013/09/22 PHP
PHP操作MySQL事务实例
2014/11/05 PHP
PHP实现的简单对称加密与解密方法实例小结
2017/08/28 PHP
关于jQuery中的end()使用方法
2011/07/10 Javascript
jquery插件jTimer(jquery定时器)使用方法
2013/12/23 Javascript
javascript实现实时输出当前的时间
2015/04/27 Javascript
javascript实现别踩白块儿小游戏程序
2015/11/22 Javascript
前端框架Vue.js中Directive知识详解
2016/09/12 Javascript
bootstrap datepicker限定可选时间范围实现方法
2016/09/28 Javascript
完美实现js拖拽效果 return false用法详解
2017/07/28 Javascript
vue如何集成raphael.js中国地图的方法示例
2017/08/15 Javascript
关于vue单文件中引用路径的处理方法
2018/01/08 Javascript
vue中实现methods一个方法调用另外一个方法
2018/02/08 Javascript
webpack4的迁移的使用方法
2018/05/25 Javascript
[26:21]浴火之凤-TI4世界冠军Newbee战队纪录片
2014/08/07 DOTA
[39:52]2018DOTA2亚洲邀请赛 4.3 突围赛 EG vs Newbee 第一场
2018/04/04 DOTA
从零学Python之引用和类属性的初步理解
2014/05/15 Python
快速了解python leveldb
2018/01/18 Python
推荐10款最受Python开发者欢迎的Python IDE
2018/09/16 Python
pycharm+PyQt5+python最新开发环境配置(踩坑)
2019/02/11 Python
python小程序实现刷票功能详解
2019/07/17 Python
Python Numpy数组扩展repeat和tile使用实例解析
2019/12/09 Python
对Python中 \r, \n, \r\n的彻底理解
2020/03/06 Python
python操作ini类型配置文件的实例教程
2020/10/30 Python
Html5内唤醒百度、高德APP的实现示例
2019/05/20 HTML / CSS
深入解析HTML5使用SVG图像时的viewBox属性用法
2015/09/02 HTML / CSS
Martinelli官方商店:西班牙皮鞋和高跟鞋品牌
2019/07/30 全球购物
求职信模板标准格式范文
2014/02/23 职场文书
尊师重教演讲稿
2014/09/04 职场文书
购房个人委托书范本
2014/10/11 职场文书
2015年客房服务员工作总结
2015/05/15 职场文书
教师纪律作风整顿心得体会
2016/01/23 职场文书
创业计划书之淘宝网店
2019/10/08 职场文书
Golang 语言控制并发 Goroutine的方法
2021/06/30 Golang
HTTP中的Content-type详解
2022/01/18 HTML / CSS