先前看到這篇文章:
教你用 Python 來(lái)玩微信跳一跳(iOS)
然后試著跑一下曙聂,結(jié)果發(fā)現(xiàn)太多坑了,現(xiàn)在把細(xì)節(jié)補(bǔ)充說(shuō)明一下:
一鞠鲜、安裝WebDriverAgent
WebDriverAgent是Facebook發(fā)布的宁脊,旨在 iOS 端實(shí)現(xiàn)了一個(gè) WebDriver server ,借助這個(gè) server 我們可以遠(yuǎn)程控制 iOS 設(shè)備贤姆。你可以實(shí)現(xiàn)啟動(dòng)榆苞、殺死應(yīng)用,點(diǎn)擊霞捡、滾動(dòng)視圖等操作坐漏。
功能不止作弊這么玩,其實(shí)很強(qiáng)大的碧信,如常用于手機(jī)應(yīng)用自動(dòng)化測(cè)試赊琳,具體內(nèi)容可以參考下文:
基于WebDriverAgent代理服務(wù),實(shí)現(xiàn)iOS手機(jī)app自動(dòng)化測(cè)試的框架搭建
ATX使用 Python 庫(kù) facebook-wda 完成網(wǎng)易云音樂(lè) iOS 客戶端的自動(dòng)化測(cè)試 (示例)
步驟如下:
- 從Github下載源碼:WebDriverAgent
- 安裝Carthage砰碴,有幾種安裝方式躏筏,這選用了brew安裝:
brew install carthage
- 執(zhí)行WebDriverAgent源碼下的啟動(dòng)腳本:
./Scripts/bootstrap.sh
- 修改bundleID:
因?yàn)樵蠭D被占用了,使用自己的開(kāi)發(fā)者賬號(hào)無(wú)法匹配呈枉,所以修改ID趁尼,且保證不跟其他人的重名,如把前綴facebook.wda
替換為woodstream
猖辫。
修改完成后build源碼酥泞,如果還無(wú)法成功,則打開(kāi)project.pbxproj
文件啃憎,搜索facebook.wda
并全替換為woodstream
再次build芝囤。 - 選擇 WebDriverAgentRunner 用真機(jī)Test:
image.png
看到輸出打印出IP地址表示成功,否則荧飞,多執(zhí)行幾次Test凡人,直到成功為止(記住這個(gè)地址,一會(huì)要用)叹阔,如果幾次都沒(méi)成功挠轴,則可能手機(jī)設(shè)置問(wèn)題,通過(guò)手機(jī)的IP和端口還不能訪問(wèn)耳幢,此時(shí)需要將手機(jī)的端口轉(zhuǎn)發(fā)到Mac上:
brew install imobiledevice
iproxy 8100 8100
二岸晦、Python配置
利用facebook-wda這個(gè)Python庫(kù)欧啤,通過(guò)構(gòu)造HTTP請(qǐng)求直接跟WebDriverAgent通信。
- 安裝python
mac上默認(rèn)安裝了python2.7.x启上,所以可以跳過(guò)這一步邢隧。在終端可輸入下述命令驗(yàn)證python是否已安裝:
python --version
- 下載wechat_jump_game
把config/iPhone
目錄下對(duì)應(yīng)你的真機(jī)設(shè)備文件,復(fù)制到當(dāng)前目錄并重命名為config.json
冈在,里面參數(shù)可能需要微調(diào)倒慧。 - 安裝python包管理工具pip
curl -O https://raw.githubusercontent.com/pypa/get-pip/master/get-pip.py
sudo python get-pip.py
也可以把上兩命令換為一個(gè):
sudo easy_install pip
- 利用pip安裝facebook-wda
pip install --pre facebook-wda
- 安裝PIL,可參考此文: Mac安裝PIL模塊
xcode-select --install
sudo easy_install -f http://www.pythonware.com/products/pil/ Imaging
- wechat_jump_game執(zhí)行其它依賴安裝
sudo pip install -r requirements.txt
此時(shí)可能會(huì)因?yàn)榕f版依賴庫(kù)存在而報(bào)錯(cuò):
如six包券,原因是Apple預(yù)安裝的這個(gè)six庫(kù)出于安全原因被設(shè)置為sudo也不可以執(zhí)行操作纫谅,所以需要依賴于高版本的庫(kù)就需要更新six,但是沒(méi)有six的權(quán)限溅固,所以就會(huì)報(bào)錯(cuò)付秕。
可以選擇忽略錯(cuò)誤,也可以替換為如下命令強(qiáng)制升級(jí):
sudo pip install -r requirements.txt --upgrade --ignore-installed
- 在appstore下載RulerSwift侍郭,用于微調(diào)像素做參考询吴;
- 微信打開(kāi)《跳一跳》小程序;
- 修改wechat_jump_auto_iOS.py亮元。
因?yàn)槲业沫h(huán)境是python2猛计,所以修改此文件,如果是python3的爆捞,則修改對(duì)應(yīng)文件有滑。
搜索wda.Client
把括號(hào)內(nèi)容替換為上述Test時(shí)的IP地址,如:wda.Client('http://192.168.96.91:8100')
- 執(zhí)行python腳本:
python wechat_jump_auto_iOS.py
至此可以看到小人自動(dòng)跳躍了嵌削。