String類的學習總結
阿新 • • 發佈:2020-11-22
2. 環境
本文主要環境如下:
-
Win7
-
小米5s
-
Python3.7
-
Appium1.5
-
支付寶10.2.6.7010
如果對環境搭建不熟悉的話,可以看一下:Python + Appium 自動化操作微信入門和我用 Python 找出了刪除我微信的所有人並將他們自動化刪除了。
3. 實現
功能實現的基本思路為:
-
開啟支付寶進入螞蟻森林,收取自己的能量
-
收取完自己能量後,點選
找能量
進入好友螞蟻森林,收取好友能量,以此類推
接下來我們看一下主要程式碼實現。
引數配置程式碼實現如下:
- desired_caps={
-
"platformName":"Android",#系統
- "platformVersion":"8.0.0",#系統版本號
- "deviceName":"m5s",#裝置名
- "appPackage":"com.eg.android.AlipayGphone",#包名
- "appActivity":"AlipayLogin",#app啟動時主Activity
- 'noReset':True#保留session資訊,可以避免重新登入
- }
通常大家都會將螞蟻森林放在支付寶首頁,此時我們開啟支付寶後直接點選螞蟻森林選項即可進入。
程式碼實現如下:
driver.find_elements_by_id('com.alipay.android.phone.openplatform:id/home_app_view')[10].click()
進入自己螞蟻森林之後,開始收取自己的能量,因為新版支付寶不能定位能量球元素了,所以我們需要在能量球可能出現的區域實現點選。收取能量的程式碼實現如下:
- #收取能量
- defcollect_energy(driver):
- print('開始收取能量')
- #獲取手機螢幕寬高
- width=int(driver.get_window_size()['width'])
- height=int(driver.get_window_size()['height'])
- #能量球可能出現的區域座標
- start_x=110
-
end_x=940
- start_y=460
- end_y=880
- foriinrange(start_y,end_y,80):
- forjinrange(start_x,end_x,80):
- tap_x1=int((int(j)/width)*width)
- tap_y1=int((int(i)/height)*height)
- #點選指定座標
- driver.tap([(tap_x1,tap_y1),(tap_x1,tap_y1)],1000)
- print('能量收取完畢')
自己能量收取完畢之後,點選找能量
進入好友螞蟻森林繼續收取能量,程式碼實現如下:
- #找能量
- defsearch_energy(driver):
- print('找能量,收取好友能量')
- time.sleep(3)
- #點選找能量
- driver.tap([(1000,1520),(1080,1580)],1000)
- time.sleep(3)
- #收取好友能量
- collect_energy(driver)
- time.sleep(3)
- #收取完畢繼續找能量
- search_energy(driver)
能量收取的功能實現了之後,我們使用定時任務實現定時收取即可,下面看一下定時任務的實現。
定時任務的實現我們使用apscheduler
元件,使用之前需執行pip install apscheduler
裝一下。
定時任務的程式碼實現如下:
- scheduler=BlockingScheduler()
- # collect_main:定時執行的方法
- scheduler.add_job(collect_main,'cron',hour=20,minute=23,second=20)
- try:
- scheduler.start()
- except(KeyboardInterrupt,SystemExit):
- pass
到此,我們利用 Python + Appium 實現定時自動化收取螞蟻森林能量的工作就完成了。
學習視訊資料:http://www.makeru.com.cn/live/1392_1164.html?s=143793