Python自動化收取螞蟻森林能量,不錯過暗戀的她
作者 |?鍋g頭
來源 |?Crossin的編程教室
最近在家遠程工作,結(jié)果作息更混亂了
,早上起不來,導致我螞蟻森林能量天天被偷,嚴重影響我沙漠造樹“大業(yè)”
。于是我決定用python寫個自動偷能量的程序,每天早上定時偷取好友能量,“稱霸”螞蟻森林。本文僅為自動化測試技術(shù)研究,請勿濫用!
一、環(huán)境配置
首先需要安裝配置好appium自動化測試工具。appium是一個開源、跨平臺的測試框架,可以用來測試原生及混合的移動端應用,支持IOS、Android及FirefoxOS平臺。大致流程:先在官網(wǎng)(appium.io)下載安裝appium,然后安裝Android SDK(我的方法是安裝Android Studio,在它里面可以安裝Android SDK),最后再安裝JAVA,并配置JAVA_HOME和CLASSPATH兩個參數(shù)的環(huán)境變量,然后就可以使用appium啦!
二、使用介紹
安裝appium有兩個目的,一是使用python的appium模塊需要先打開appium客戶端,否則無法使用;二是便于我們查找某個app某個界面的元素,初次打開時如圖所示:
點擊Start Server v1.8.1?
點擊搜索圖標
配置好4個參數(shù),第一個參數(shù)是手機操作系統(tǒng),第二個參數(shù)是手機型號,在設(shè)置中可以找到,第三、四參數(shù)是app的兩個特定值,點擊start session就可以操控手機了。
?三、開發(fā)步驟
第一步:appium自動化測試app首先需要找到 ‘appPackage’ 和 ‘appActivity’ 兩個參數(shù)
這里給大家介紹一種通用的找手機app這兩個參數(shù)的方法:1. 先找到獲取apk信息工具(android SDK的aapt工具)所在的位置;2. 下載支付寶app,記住存放位置;3. 打開命令行,輸入以下信息
打碼部分是支付寶app所在的位置在輸出信息中可以找到‘a(chǎn)ppPackage’和‘a(chǎn)ppActivity’的值:


第二步:打開支付寶,模擬點擊,進入螞蟻森林界面
正常情況下,appium操控打開app時,需要配置一下參數(shù):

但是這種配置方式會默認從頭打開app,需要驗證各種信息,而且需要重新登錄,今天教大家如何避免重新登錄,只需添加2個參數(shù)就ok:
這樣就會避免重新登錄了。下面就是模擬點擊元素操作了,找app元素的方法如下:

只需用客戶端appium打開手機APP,然后將鼠標放在需要點擊的部位,在右側(cè)就能找到該部位的元素了。然后依次點擊下圖按鈕:
代碼如下:
?第三步:依次點擊進入好友螞蟻森林主頁?
如圖所示,我需要點擊一次點擊進入每個好友的主頁,我采取的方式是只點擊進入第一個框所在的坐標,然后模擬向上滑動1個框的高度,這樣依次就可以點擊到每個好友了,代碼如下:

需要注意的是,個人的主頁是點不開的,但是不用做相應處理,因為點不進去就會在當前界面進行檢測,判作無能量球,繼續(xù)滑動到下一個。
第四步:檢測有無可收取得能量?

經(jīng)過分析元素,螞蟻森林主頁可以分為2類情況,第一種是沒有能量球,第二種是有能量球,判斷方法是比較上圖中classname的數(shù)量,若大于5則代表有能量球,反之則沒有,代碼如下:

然后再進一步分析能力球能否能收取,很簡單,只需要判斷每個classname的text是否含有“能量”這2個字就ok了,因為不可收取的能量球不含這兩個字,代碼如下:

為了防止有的能量沒到時間,到最后一個好友時,需要返回頂端重新開始檢測,我采取的方式是連續(xù)點擊兩次左上角的返回鍵,然后再重復上述的點擊“查看更多好友”步驟,代碼如下:

第五步:效果展示
源碼:https://paste.ubuntu.com/p/hgYxBgZ2Xr/
有多少人打著收能量的旗號和暗戀的人互動?
評論
圖片
表情
