中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

基于Python+Appium實現京東雙十一自動領金幣功能

發布時間:2020-09-28 02:22:30 來源:腳本之家 閱讀:317 作者:一土小亙兄 欄目:開發技術

背景:做任務領金幣的過程很無聊,而且每天都是重復同樣的工作,非常符合自動化的定義;

工具: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實現京東雙十一自動領金幣功能,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對億速云網站的支持!
如果你覺得本文對你有幫助,歡迎轉載,煩請注明出處,謝謝!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

泾阳县| 舒城县| 安宁市| 汉源县| 山阳县| 万载县| 平江县| 黄山市| 舒兰市| 石门县| 清新县| 班玛县| 大渡口区| 镇原县| 南安市| 垣曲县| 盐源县| 承德县| 新密市| 南丹县| 南和县| 林芝县| 宁都县| 徐州市| 怀集县| 桃园市| 红原县| 阿克陶县| 朝阳市| 思南县| 谷城县| 库尔勒市| 县级市| 横山县| 博爱县| 罗城| 新竹县| 汕尾市| 兴义市| 和平区| 江山市|