之前在知乎上看到了乙個ui測試框架airtest,感覺很好。自己每天要收取螞蟻森林能量,就想著能不能用程式實現。於是試著寫來下,效果看來很好。
直接貼**吧,很簡單
from airtest.core.api import *
def unlock_device(dev):
"""解鎖裝置(圖案鎖屏)
:param dev: 連線的裝置
:return:
"""dev.shell('input keyevent 26')
swipe((100, 400), vector=[-0.0149, -0.9193])
dev.minitouch.swipe_along(
[[0, 0]])
def collect_energy(is_home=false):
"""收取能量,自己的和好友的
:param is_home: 是否是自己的
:return:
"""if is_home:
if not exists(template(r"data/mayisenlin/tpl1557374412969.png", record_pos=(0.32, -0.203), resolution=(1080, 1920))):
return
energy_list = find_all(template(r"data/mayisenlin/tpl1557374412969.png", record_pos=(0.32, -0.203), resolution=(1080, 1920)))
else:
if exists(template(r"data/mayisenlin/tpl1557373442966.png", record_pos=(-0.062, -0.566), resolution=(1080, 1920))):
return
energy_list = find_all(template(r"data/mayisenlin/tpl1557370999417.png", record_pos=(0.034, -0.215), resolution=(1080, 1920)))
if not energy_list:
return
for energy in energy_list:
if is_home:
touch(energy["result"])
else:
touch((energy["result"][0], energy["result"][1] - 10))
def find_friends_energy():
"""判斷好友列表中是否有能量可以收取,如果發現有就收取
:return:
"""energy_friends = find_all(template(r"data/mayisenlin/tpl1557371179958.png", record_pos=(0.475, 0.15), resolution=(1080, 1920)))
if not energy_friends:
return
for friend in energy_friends:
touch(friend["result"])
sleep(1)
collect_energy()
touch(template(r"data/mayisenlin/tpl1557373711838.png", record_pos=(-0.443, -0.765), resolution=(1080, 1920)))
def start_alipy_forest(dev):
"""啟動支付寶,並且開啟螞蟻森林,前提是螞蟻森林在支付寶首頁
:param dev: 連線的裝置
:return:
"""package = 'com.eg.android.alipaygphone'
wait(template(r"data/mayisenlin/tpl1557371626529.png", record_pos=(-0.37, -0.141), resolution=(1080, 1920)))
touch(template(r"data/mayisenlin/tpl1557371626529.png", record_pos=(-0.37, -0.141), resolution=(1080, 1920)))
sleep(1)
wait(template(r"data/mayisenlin/tpl1557372598598.png", record_pos=(-0.344, -0.759), resolution=(1080, 1920)))
def swipe_next(check_more=true):
"""滑動介面
:return:
"""find_friends_energy()
if check_more:
result = exists(
template(r"data/mayisenlin/tpl1557374693373.png", threshold=0.86, record_pos=(0.062, -0.115), resolution=(1080, 1920)))
if result:
check_more = false
touch(result)
if exists(template(r"data/mayisenlin/tpl1557371700856.png", threshold=0.85, record_pos=(0.012, 0.819), resolution=(1080, 1920))):
return
look_more_result = exists(
template(r"data/mayisenlin/tpl1557379057683.png", threshold=0.85, record_pos=(0.005, 0.845), resolution=(1080, 1920)))
if look_more_result:
touch(look_more_result)
swipe((100, 500), vector=[0, -0.99])
return swipe_next(check_more=check_more)
def main():
dev = connect_device('android:') # 填寫自己的裝置號
if dev.is_locked():
unlock_device(dev)
start_alipy_forest(dev)
collect_energy(is_home=true)
swipe_next()
dev.shell('input keyevent 26')
if __name__ == "__main__":
main()
有一點需要注意:請用github上最新的****:如何執行指令碼:2) clone **,python setup.py install (pip install 比較老,有bug)
3) airtest/core/android/static/adb/windows/adb.exe devices 獲取手機的裝置號 比如s12d45
4) unlock_device(dev)這個**可以去掉,如果想要自行解鎖,參考這個 主要是獲取圖案的座標
5) 當成正常的python程式執行吧
裡面的引數可能需要自己調整下,比如閥值。建議先看看官方教程
補充:建了乙個qq群:389954854,主要目的是互幫互助,通過交流促進python技術。很多初學者往往不知道如何下手,還等什麼,快快加入進來吧!
Xposed學習筆記之螞蟻森林能量自動收取模組
本文主要借鑑尼古拉斯 趙四大佬的文章 object resp param.getresult if resp null string response string method.invoke resp,newobject method rpccallmethod rpcclazz.getmetho...
螞蟻森林 為TA澆水 新版
螞蟻森林 為ta澆水 鏈結提交訊息 18g 傳送訊息 disablelimitview true callbackid rpc 15857443272600.13916822902896353 10g 傳送訊息 disablelimitview true callbackid rpc 1585744...
AI遇到公益,天貓精靈螞蟻森林套裝首發
5 月 22 日,天貓精靈官方微博發布訊息jzespmnw稱,天貓精靈聯手螞蟻金服打造的 會種樹的天貓精靈 將於 5 月 24 日限量上線,在天貓精靈官方 和withant天貓 發售。5 億人種出一片螞蟻森林 今天你收 螞蟻森林能量 了嗎?相信聽到這句話不少人會靈光一閃,馬上開啟自己的支付寶檢查。自...