基于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实现简单文本字符串处理的方法
Jan 22 Python
python编辑用户登入界面的实现代码
Jul 16 Python
用python实现k近邻算法的示例代码
Sep 06 Python
python3实现小球转动抽奖小游戏
Apr 15 Python
Python中Numpy ndarray的使用详解
May 24 Python
python命令行工具Click快速掌握
Jul 04 Python
Django框架下静态模板的继承操作示例
Nov 08 Python
Python爬取新型冠状病毒“谣言”新闻进行数据分析
Feb 16 Python
Python datetime模块使用方法小结
Jun 18 Python
解析python 中/ 和 % 和 //(地板除)
Jun 28 Python
python字典key不能是可以是啥类型
Aug 04 Python
Python3使用Qt5来实现简易的五子棋小游戏
May 02 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
php桌面中心(一) 创建数据库
2007/03/11 PHP
PHP中计算字符串相似度的函数代码
2012/12/29 PHP
PHP常用正则表达式集锦
2014/08/17 PHP
php str_replace替换指定次数的方法详解
2017/05/05 PHP
laravel5.4利用163邮箱发送邮件的步骤详解
2017/09/22 PHP
php中各种定义变量的方法小结
2017/10/18 PHP
Javascript调用XML制作连动下拉列表框
2006/06/25 Javascript
javascript学习笔记(二) js一些基本概念
2012/06/18 Javascript
为什么要在引入的css或者js文件后面加参数的详细讲解
2013/05/03 Javascript
JS中表单的使用小结
2014/01/11 Javascript
nodejs教程之环境安装及运行
2014/11/21 NodeJs
MVC Ajax Helper或Jquery异步加载部分视图
2015/11/29 Javascript
AngularJS指令与指令之间的交互功能示例
2016/12/14 Javascript
微信小程序 实例开发总结
2017/04/26 Javascript
JavaScript30 一个月纯 JS 挑战中文指南(英文全集)
2017/07/23 Javascript
HTML5开发Kinect体感游戏的实例应用
2017/09/18 Javascript
Three.js开发实现3D地图的实践过程总结
2017/11/20 Javascript
微信小程序保持session会话的方法
2020/03/20 Javascript
[49:21]2018DOTA2亚洲邀请赛3月30日 小组赛B组 Effect VS iG
2018/03/31 DOTA
python自动zip压缩目录的方法
2015/06/28 Python
浅析Python中else语句块的使用技巧
2016/06/16 Python
Python正则表达式知识汇总
2017/09/22 Python
python实现可变变量名方法详解
2019/07/01 Python
详解PyTorch中Tensor的高阶操作
2019/08/18 Python
Python selenium 加载并保存QQ群成员,去除其群主、管理员信息的示例代码
2020/05/28 Python
3分钟看懂Python后端必须知道的Django的信号机制
2020/07/26 Python
俄罗斯美容和健康网上商店:Созвездие Красоты
2019/07/23 全球购物
英国最大的滑板品牌选择:Route One
2019/09/22 全球购物
雷蛇美国官网:Razer
2020/04/03 全球购物
建筑专业自荐信
2013/10/18 职场文书
酒店采购员岗位职责
2014/03/14 职场文书
销售人员求职信
2014/07/22 职场文书
青年教师个人总结
2015/02/11 职场文书
公司慰问信范文
2015/03/23 职场文书
停电通知范文
2015/04/16 职场文书
2019年让高校“心动”的自荐信
2019/03/25 职场文书