环境要求:
WebDriverAgent
Homebrew
Carthage
Python
node.js
Xcode
Github项目包
首先在Mac上打开终端
打开终端以后下载 Homebrew(如果已经有环境那么可以跳过)
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
下载 Carthage
brew install carthage
下载 Python
brew install python
下载 node.js
brew install node
以上环境都成功安装后,开始下载 WebDriverAgent
git clone https://github.com/facebook/WebDriverAgent
下载完成之后进入 WebDriverAgent 的目录下
(P.S.正常情况下 WebDriverAgent 是下载到 用户/个人 目录下的)
./Scripts/bootstrap.sh
如果WebDriverAgent目录没错, 上面的环境都成功安装,那么应该可以把 WebDriverAgent 安装起来了,这一步很重要
编译WebDriverAgent
进入 WebDriverAgent 目录 双击 WebDriverAgent.xcodeproj, 用 Xcode 打开
Xcode 正常打开后项目代码应该是没有问题的,选择一个 虚拟iPhone 调试
等待 iPhone 虚拟机跑起来后, 会看到 iPhone 里面 有一个 WebDriverAgentRunner 的 app, 那么说明 WebDriverAgent 已经可以成功的编译了
测试 WebDriverAgent
打开浏览器,地址栏输入:127.0.0.1:8100/inspector 看到类似下图说明一切顺利
真机安装
(P.S. 安装到真机上是需要证书签名的,免费的个人证书我没有搞定,最后用的是99刀的开发者证书*)
菜单栏 Product 选择目标设备
Scheme 选择 WebDriverAgentRunner
最后运行Product -> Test
一切正常的话,手机上会出现一个无图标的WebDriverAgent应用,启动之后,马上又返回到桌面。这是很正常的不要奇怪。
此时控制台界面可以看到设备的IP,如果看不到的话,使用这种方法打开
通过上面给出的IP和端口,加上/status合成一个url地址。例如http://10.0.0.1:8100/status,然后浏览器打开。如果出现一串JSON输出,说明WDA安装成功了
端口转发
有些国产的iPhone不能通过手机的IP和端口访问,此时需要将手机的端口转发到Mac上
$ brew install usbmuxd
$ iproxy 8100 8100
以上命令就是把当前连接设备的8100端口映射到电脑的8100端口,那么想和设备8100端口通信,直接和本地的8100端口通信就可以了
使用iproxy --help 可以查到更具体的用法。 这时通过访问http://localhost:8100/status确认WDA是否运行成功。
而inspector的地址是http://localhost:8100/inspector, inspector是用来查看UI的图层,方便写测试脚本用的
其他问题
还有一些奇怪的问题,比如
1. Failed to authorize rights (0x1) with status: -60007
2. The bundle “WebDriverAgentRunner” couldn’t be loaded because it is damaged or missing necessary resources
运行 Python
Python 环境需求:
facebook-wda
pip install facebook-wda
numpy
pip install numpy
matplotlib
pip install matplotlib
pillow
pip install pillow
配置好环境以后运行安装好的 `WebDriverAgentRunner`
将手机点击到 ‘跳一跳‘ 小程序界面
运行 python3 wechat_jump_iOS_py3.py
依次点击起始位置和目标位置,实现蓄力一跳,源文件中根据蓄力一跳的精准情况可以更改其中的 `time_coefficient`,直到获得最佳取值