基於 python + WebDriverAgent 的“跳一跳”小程式高分教程

korbinzhao發表於2018-01-09

2017年12月28日,微信放出了 6.6.1 版本,在微信首頁二樓(下拉出現)位置重磅推出了“跳一跳”小程式,瞬間刷爆朋友圈。

基於 python + WebDriverAgent 的“跳一跳”小程式高分教程
基於 python + WebDriverAgent 的“跳一跳”小程式高分教程

在大家忙於遊戲的時候,有人獨闢蹊徑基於 python + WebDriverAgent 實現了通過 PC 遠端操控手機“跳一跳”小程式小人自動跳動,將分數刷到了令人髮指的地步,悄悄佔領朋友圈第一。

基於 python + WebDriverAgent 的“跳一跳”小程式高分教程

目前已經有比較火的幾篇文章詳細講如何實現上述操作,但是或多或少存在描述不夠詳細、引數設定只在某些機型上表現較好的問題。這也造成我在根據這些教程實現過程中踩了幾個小坑。本文基於 Macbook + iphone 6s plus 來講一下如何實現上述過程,也將踩過的坑記錄下。

環境準備

安裝 python3

下載並點選安裝。下載地址:www.python.org/downloads/m… 在終端 terminal 中輸入如下命令,檢視是否安裝 python3 成功。

~ python3 -V
Python 3.6.4 
複製程式碼

建立 python3 虛擬環境

文件地址:docs.python.org/3/tutorial/… 方法如下:

~ python3 -m venv tutorial-env
~ source tutorial-env/bin/activate
(tutorial-env) ➜  ~
複製程式碼

安裝 pip

安裝 python 包管理工具 pip。 文件地址:pip.pypa.io/en/latest/i… 方法如下:

(tutorial-env) ➜  ~ curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
(tutorial-env) ➜  ~ python get-pip.py
複製程式碼

安裝 xcode

通過 appstore 安裝

安裝 WebDriverAgent

xcode,儘量新版。儘量升級Xcode到最新版,保持iPhone的版本大於9.3。

從github上下載程式碼

git clone https://github.com/facebook/WebDriverAgent
複製程式碼

安裝 carthage

brew install carthage
複製程式碼

執行初始化指令碼

./Scripts/bootstrap.sh
複製程式碼

該指令碼會使用Carthage下載所有的依賴,使用npm打包響應的js檔案

執行完成後,直接雙擊開啟WebDriverAgent.xcodeproj這個檔案。

設定證照

設定證照籤名,Team 一欄勾選個人賬號即可。

基於 python + WebDriverAgent 的“跳一跳”小程式高分教程
接著在TARGETS裡面選中WebDriverAgentRunner,用同樣的方法設定好證照
基於 python + WebDriverAgent 的“跳一跳”小程式高分教程
重新命名WebDriverAgent的BundleID,避免重名。
基於 python + WebDriverAgent 的“跳一跳”小程式高分教程
接著在TARGETS裡面選中WebDriverAgentRunner,用同樣的方法重新命名。
基於 python + WebDriverAgent 的“跳一跳”小程式高分教程

執行和測試

Xcode - Product - Scheme 中選擇 WebDriverAgentRunner。

基於 python + WebDriverAgent 的“跳一跳”小程式高分教程
將 iphone 通過資料線連線到 macbook 上。 在 Xcode - Product - Destination 中選擇資料線連線的 iphone 。
基於 python + WebDriverAgent 的“跳一跳”小程式高分教程

執行 Xcode - Product - Test

基於 python + WebDriverAgent 的“跳一跳”小程式高分教程

埠轉發

~ brew install libimobiledevice
~ iproxy 8100 8100
複製程式碼

使用iproxy --help 可以查到更具體的用法。 這時通過訪問http://localhost:8100/status確認WDA是否執行成功。

而inspector的地址是http://localhost:8100/inspector, inspector是用來檢視UI的圖層,方便寫測試指令碼用的

基於 python + WebDriverAgent 的“跳一跳”小程式高分教程

使用 python 控制 iphone 自動跳一跳

獲取 python 跳一跳程式碼

倉庫地址:github.com/korbinzhao/…

git clone git@github.com:korbinzhao/wechat_jump_game.git
複製程式碼

安裝 facebook-wda

(tutorial-env) ➜ ~ pip3 install --pre facebook-wda
複製程式碼

安裝專案依賴

 (tutorial-env) ➜  wechat_jump_game git:(master) ✗ pip3 install -r requirements.txt
複製程式碼

拷貝 ./config/iPhone 目錄下對應的裝置配置檔案,重新命名並替換到 ./config.json

基於 python + WebDriverAgent 的“跳一跳”小程式高分教程

在手機中開啟小程式介面,執行 python 指令碼

基於 python + WebDriverAgent 的“跳一跳”小程式高分教程

(tutorial-env) ➜  wechat_jump_game git:(master) ✗ python3 wechat_jump_auto_iOS.py
複製程式碼

最終效果

基於 python + WebDriverAgent 的“跳一跳”小程式高分教程

參考資料

  1. 教你用 Python 來玩微信跳一跳
  2. 微信跳一跳 mac + iphone 圖文教程
  3. ATX 文件 - iOS 真機如何安裝 WebDriverAgent

相關文章