基于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中处理字符串之endswith()方法的使用简介
May 18 Python
详解K-means算法在Python中的实现
Dec 05 Python
python 读入多行数据的实例
Apr 19 Python
Django压缩静态文件的实现方法详析
Aug 26 Python
python抓取京东小米8手机配置信息
Nov 13 Python
用Python获取摄像头并实时控制人脸的实现示例
Jul 11 Python
python使用tomorrow实现多线程的例子
Jul 20 Python
python实现大文本文件分割
Jul 22 Python
Python 如何提高元组的可读性
Aug 26 Python
如何安装并在pycharm使用selenium的方法
Apr 30 Python
python中round函数如何使用
Jun 19 Python
Python中np.random.randint()参数详解及用法实例
Sep 23 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 模拟GMAIL,HOTMAIL(MSN),YAHOO,163,126邮箱登录的详细介绍
2013/06/18 PHP
解析:通过php socket并借助telnet实现简单的聊天程序
2013/06/18 PHP
php连接oracle数据库及查询数据的方法
2014/12/29 PHP
php版微信公众平台接口参数调试实现判断用户行为的方法
2016/09/23 PHP
Aster vs KG BO3 第三场2.18
2021/03/10 DOTA
json格式的时间显示为正常年月日的方法
2013/09/08 Javascript
js转义字符介绍
2013/11/05 Javascript
js 操作select与option(示例讲解)
2013/12/20 Javascript
jQuery中多个元素的Hover事件解决方案
2014/06/12 Javascript
JavaScript 开发工具webstrom使用指南
2014/12/09 Javascript
JavaScript判断按钮被点击的方法
2015/12/13 Javascript
jQuery+JSON实现AJAX二级联动实例分析
2015/12/18 Javascript
AngularJS 表达式详解及实例代码
2016/09/14 Javascript
express文件上传中间件Multer详解
2016/10/24 Javascript
优雅地使用loading(推荐)
2019/04/20 Javascript
vue路由教程之静态路由
2019/09/03 Javascript
使用python解析xml成对应的html示例分享
2014/04/02 Python
Numpy中stack(),hstack(),vstack()函数用法介绍及实例
2018/01/09 Python
Python遍历某目录下的所有文件夹与文件路径
2018/03/15 Python
Scrapy-Redis结合POST请求获取数据的方法示例
2019/05/07 Python
itchat-python搭建微信机器人(附示例)
2019/06/11 Python
python画微信表情符的实例代码
2019/10/09 Python
Python笔记之观察者模式
2019/11/20 Python
django ObjectDoesNotExist 和 DoesNotExist的用法
2020/07/09 Python
解决python对齐错误的方法
2020/07/16 Python
Python3爬虫发送请求的知识点实例
2020/07/30 Python
详解前端HTML5几种存储方式的总结
2016/12/27 HTML / CSS
使用phonegap进行本地存储的实现方法
2017/03/31 HTML / CSS
Rosetta Stone官方网站:语言学习
2019/01/05 全球购物
林肯就职演讲稿
2014/05/19 职场文书
公司优秀员工获奖感言
2014/08/14 职场文书
员工三分钟演讲稿
2014/08/19 职场文书
诚实守信演讲稿
2014/09/01 职场文书
党员“四风”方面存在问题及整改措施
2014/09/24 职场文书
python3+PyQt5+Qt Designer实现界面可视化
2021/06/10 Python
Apache Hudi数据布局黑科技降低一半查询时间
2022/03/31 Servers