人生苦短,我用python

《跳一跳》小程序,python作弊ios版细节说明

2018-01-08  本文已影响110人  IT晴天

先前看到这篇文章:
教你用 Python 来玩微信跳一跳(iOS)

然后试着跑一下,结果发现太多坑了,现在把细节补充说明一下:

一、安装WebDriverAgent

WebDriverAgent是Facebook发布的,旨在 iOS 端实现了一个 WebDriver server ,借助这个 server 我们可以远程控制 iOS 设备。你可以实现启动、杀死应用,点击、滚动视图等操作。

功能不止作弊这么玩,其实很强大的,如常用于手机应用自动化测试,具体内容可以参考下文:
基于WebDriverAgent代理服务,实现iOS手机app自动化测试的框架搭建
ATX使用 Python 库 facebook-wda 完成网易云音乐 iOS 客户端的自动化测试 (示例)

步骤如下:

  1. 从Github下载源码:WebDriverAgent
  2. 安装Carthage,有几种安装方式,这选用了brew安装:
brew install carthage
  1. 执行WebDriverAgent源码下的启动脚本:
./Scripts/bootstrap.sh
  1. 修改bundleID:
    因为原有ID被占用了,使用自己的开发者账号无法匹配,所以修改ID,且保证不跟其他人的重名,如把前缀facebook.wda替换为woodstream
    修改完成后build源码,如果还无法成功,则打开project.pbxproj文件,搜索facebook.wda并全替换为woodstream再次build。
  2. 选择 WebDriverAgentRunner 用真机Test:
    image.png
    看到输出打印出IP地址表示成功,否则,多执行几次Test,直到成功为止(记住这个地址,一会要用),如果几次都没成功,则可能手机设置问题,通过手机的IP和端口还不能访问,此时需要将手机的端口转发到Mac上:
brew install imobiledevice
 iproxy 8100 8100
Test时打印出IP地址

二、Python配置

利用facebook-wda这个Python库,通过构造HTTP请求直接跟WebDriverAgent通信。

  1. 安装python
    mac上默认安装了python2.7.x,所以可以跳过这一步。在终端可输入下述命令验证python是否已安装:
python --version
  1. 下载wechat_jump_game
    config/iPhone目录下对应你的真机设备文件,复制到当前目录并重命名为config.json,里面参数可能需要微调。
  2. 安装python包管理工具pip
curl -O https://raw.githubusercontent.com/pypa/get-pip/master/get-pip.py
sudo python get-pip.py

也可以把上两命令换为一个:

sudo easy_install pip
  1. 利用pip安装facebook-wda
pip install --pre facebook-wda
  1. 安装PIL,可参考此文: Mac安装PIL模块
xcode-select --install
sudo easy_install -f http://www.pythonware.com/products/pil/ Imaging
  1. wechat_jump_game执行其它依赖安装
sudo pip install -r requirements.txt

此时可能会因为旧版依赖库存在而报错:

如six,原因是Apple预安装的这个six库出于安全原因被设置为sudo也不可以执行操作,所以需要依赖于高版本的库就需要更新six,但是没有six的权限,所以就会报错。

可以选择忽略错误,也可以替换为如下命令强制升级:

sudo pip install -r requirements.txt --upgrade --ignore-installed
  1. 在appstore下载RulerSwift,用于微调像素做参考;
  2. 微信打开《跳一跳》小程序;
  3. 修改wechat_jump_auto_iOS.py。
    因为我的环境是python2,所以修改此文件,如果是python3的,则修改对应文件。
    搜索wda.Client把括号内容替换为上述Test时的IP地址,如:wda.Client('http://192.168.96.91:8100')
  4. 执行python脚本:
python wechat_jump_auto_iOS.py

至此可以看到小人自动跳跃了。

上一篇下一篇

猜你喜欢

热点阅读