基于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的批量远程管理和部署工具Fabric用法实例
Jan 23 Python
对Python新手编程过程中如何规避一些常见问题的建议
Apr 01 Python
Python实现将DOC文档转换为PDF的方法
Jul 25 Python
基于python的字节编译详解
Sep 20 Python
Django中的Model操作表的实现
Jul 24 Python
修改python plot折线图的坐标轴刻度方法
Dec 13 Python
Python3.5内置模块之os模块、sys模块、shutil模块用法实例分析
Apr 27 Python
如何使用Python 打印各种三角形
Jun 28 Python
python3 Scrapy爬虫框架ip代理配置的方法
Jan 17 Python
详解pandas中iloc, loc和ix的区别和联系
Mar 09 Python
Python3 Tensorlfow:增加或者减小矩阵维度的实现
May 22 Python
python wsgiref源码解析
Feb 06 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自动跳转中英文页面
2008/07/29 PHP
PHP无刷新上传文件实现代码
2011/09/19 PHP
基于PHP Socket配置以及实例的详细介绍
2013/06/13 PHP
利用PHP获取访客IP、地区位置、浏览器及来源页面等信息
2017/06/27 PHP
JavaScript中Object和Function的关系小结
2009/09/26 Javascript
基于Bootstrap实现tab标签切换效果
2020/04/15 Javascript
概述javascript在Google IE中的调试技巧
2016/11/24 Javascript
浅谈vue+webpack项目调试方法步骤
2017/09/11 Javascript
javascript  删除select中的所有option的实例
2017/09/17 Javascript
js 图片转base64的方式(两种)
2018/04/24 Javascript
详解如何为你的angular app构建一个第三方库
2018/12/07 Javascript
微信公众号获取用户地理位置并列出附近的门店的示例代码
2019/07/25 Javascript
vue实现点击按钮切换背景颜色的示例代码
2020/06/23 Javascript
解决vue项目获取dom元素宽高总是不准确问题
2020/07/29 Javascript
[57:12]完美世界DOTA2联赛循环赛 Inki vs Matador BO2第一场 10.31
2020/11/02 DOTA
Linux下使用python自动修改本机网关代码分享
2015/05/21 Python
在Python中操作字典之update()方法的使用
2015/05/22 Python
在Lighttpd服务器中运行Django应用的方法
2015/07/22 Python
python中找出numpy array数组的最值及其索引方法
2018/04/17 Python
python 统计一个列表当中的每一个元素出现了多少次的方法
2018/11/14 Python
django的聚合函数和aggregate、annotate方法使用详解
2019/07/23 Python
超实用的 30 段 Python 案例
2019/10/10 Python
Python OpenCV视频截取并保存实现代码
2019/11/30 Python
python的slice notation的特殊用法详解
2019/12/27 Python
python实现银行实战系统
2020/02/26 Python
给国外客户的邀请函
2014/01/30 职场文书
记帐员岗位责任制
2014/02/08 职场文书
2014年社会实践活动总结范文
2014/04/29 职场文书
2014国庆节餐厅促销活动策划方案
2014/09/16 职场文书
公司承诺函范文
2015/01/21 职场文书
董事长岗位职责
2015/02/13 职场文书
导游带团欢迎词
2015/09/30 职场文书
2016春季幼儿园小班开学寄语
2015/12/03 职场文书
MySQL中VARCHAR与CHAR格式数据的区别
2021/05/26 MySQL
一篇文章告诉你如何实现Vue前端分页和后端分页
2022/02/18 Vue.js
在Centos 8.0中安装Redis服务器的教程详解
2022/03/21 Redis