一.安裝環境
python3:安裝python3環境,並安裝依賴:
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple --pre -U uiautomator2
adb:您可以轉到[官方文檔](https://developer.android.com/studio/command-line/adb)
( mac電腦adb安裝:brew install android-platform-tools )
手機:安卓手機一部或者多部,或者安卓虛擬機一個或者多個
二.調試環境
adb:adb安裝成功后,在命令行輸入adb,會出現以下提示:
adb start-server:啟動服務
adb devices:查看連接的設備列表
當安卓手機和電腦連接之后,再輸入:adb devices,就可以看到設備編號,記住這個編號,后面有用。
(如果用的安卓虛擬機,需要注意:需要先執行:adb kill-server,然后再執行:adb start-server,再執行:adb devices,才會顯示設備列表)
設備上安裝atx-agent:
python -m uiautomator2 init
會在安卓設備上安裝一個依賴ATX軟件:
三.開始搶菜
打開美團,並進入購物車頁面,確認購物車里是有商品的:(沒有商品肯定是不行的,對吧)
然后開始運行代碼:
import os
import time
import uiautomator2 as u2
# 連接手機
def connect_phone(device_name):
d = u2.connect(device_name)
if not d.service("uiautomator").running():
# 啟動uiautomator服務
print("start uiautomator")
d.service("uiautomator").start()
time.sleep(2)
if not d.agent_alive:
print("agent_alive is false")
u2.connect()
d = u2.connect(device_name)
return d
def run(device_name):
d = connect_phone(device_name)
d.app_start("com.sankuai.meituan")
count = 1
time_start = time.time()
while True:
start = time.time()
if d(textContains="結算(").exists:
print("點擊結算")
d(textContains="結算(").click()
if d(text="我知道了").exists:
print("點擊我知道了")
d(text="我知道了").click()
if d(text="返回購物車").exists:
print("點擊返回購物車")
d(text="返回購物車").click()
if d(text="立即支付").exists:
print("點擊立即支付")
d(text="立即支付").click()
if d(text="確認並支付").exists:
print("點擊確認並支付")
d(text="確認並支付").click()
if d(resourceId="btn-line").exists:
print("確認支付")
d(resourceId="btn-line").click()
# mac系統使用語音提示:說搶到菜了,windows請屏蔽
# os.system('say "搶到菜了,快來看"')
break
print("本次花費時間:", time.time() - start)
print("總共花費時間:", (time.time() - time_start) / 60, "分鍾,第", count, "次")
count += 1
if __name__ == '__main__':
# 此處填設備編號
device_name = "b8c282ac"
run(device_name)
最后看一下成果:
(因為我有兩個安卓手機,又另外開了一個安卓虛擬機,所以就是下面效果了,哈哈哈哈哈)
再展示一下搶到的菜吧,同時祝大家早日搶到自己喜歡的菜吧,也希望疫情趕緊結束:(偷偷問問,鮑魚怎么做,還是活的,,,,,,,)
————————————————
版權聲明:本文為CSDN博主「1024小神」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/weixin_44786530/article/details/124069742