先前看到这篇文章:
教你用 Python 来玩微信跳一跳(iOS)
然后试着跑一下,结果发现太多坑了,现在把细节补充说明一下:
一、安装WebDriverAgent
WebDriverAgent是Facebook发布的,旨在 iOS 端实现了一个 WebDriver server ,借助这个 server 我们可以远程控制 iOS 设备。你可以实现启动、杀死应用,点击、滚动视图等操作。
功能不止作弊这么玩,其实很强大的,如常用于手机应用自动化测试,具体内容可以参考下文:
基于WebDriverAgent代理服务,实现iOS手机app自动化测试的框架搭建
ATX使用 Python 库 facebook-wda 完成网易云音乐 iOS 客户端的自动化测试 (示例)
步骤如下:
- 从Github下载源码:WebDriverAgent
- 安装Carthage,有几种安装方式,这选用了brew安装:
brew install carthage
- 执行WebDriverAgent源码下的启动脚本:
./Scripts/bootstrap.sh
- 修改bundleID:
因为原有ID被占用了,使用自己的开发者账号无法匹配,所以修改ID,且保证不跟其他人的重名,如把前缀facebook.wda
替换为woodstream
。
修改完成后build源码,如果还无法成功,则打开project.pbxproj
文件,搜索facebook.wda
并全替换为woodstream
再次build。 - 选择 WebDriverAgentRunner 用真机Test:
image.png
看到输出打印出IP地址表示成功,否则,多执行几次Test,直到成功为止(记住这个地址,一会要用),如果几次都没成功,则可能手机设置问题,通过手机的IP和端口还不能访问,此时需要将手机的端口转发到Mac上:
brew install imobiledevice
iproxy 8100 8100
Test时打印出IP地址
二、Python配置
利用facebook-wda这个Python库,通过构造HTTP请求直接跟WebDriverAgent通信。
- 安装python
mac上默认安装了python2.7.x,所以可以跳过这一步。在终端可输入下述命令验证python是否已安装:
python --version
- 下载wechat_jump_game
把config/iPhone
目录下对应你的真机设备文件,复制到当前目录并重命名为config.json
,里面参数可能需要微调。 - 安装python包管理工具pip
curl -O https://raw.githubusercontent.com/pypa/get-pip/master/get-pip.py
sudo python get-pip.py
也可以把上两命令换为一个:
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执行其它依赖安装
sudo pip install -r requirements.txt
此时可能会因为旧版依赖库存在而报错:
如six,原因是Apple预安装的这个six库出于安全原因被设置为sudo也不可以执行操作,所以需要依赖于高版本的库就需要更新six,但是没有six的权限,所以就会报错。
可以选择忽略错误,也可以替换为如下命令强制升级:
sudo pip install -r requirements.txt --upgrade --ignore-installed
- 在appstore下载RulerSwift,用于微调像素做参考;
- 微信打开《跳一跳》小程序;
- 修改wechat_jump_auto_iOS.py。
因为我的环境是python2,所以修改此文件,如果是python3的,则修改对应文件。
搜索wda.Client
把括号内容替换为上述Test时的IP地址,如:wda.Client('http://192.168.96.91:8100')
- 执行python脚本:
python wechat_jump_auto_iOS.py
至此可以看到小人自动跳跃了。
网友评论