通过使用AutomatorX,配合WebDriverAgent,可以实现在非越狱的IOS设备上更简单的进行自动化测试。同样,Android设备一样受到支持。

相关工程

AutomatorX 
WebDriverAgent

环境要求

Python3.5+ 
Brew Mac OS X 10.11+ IOS 10+ Android 4.0+

配置环境

以下操作基于已经创建了python3.5的VirtualEnv

通用

brew install homebrew/science/opencv  
brew install pillow  
pip install --upgrade --pre atx -i https://pypi.doubanio.com/simple/  
pip install opencv_python -i https://pypi.doubanio.com/simple/  

Android

Android需要安装ADB  
brew install android-platform-tools  

IOS

brew install npm  
brew install carthage  
brew install libmobiledevice  
git clone https://github.com/facebook/WebDriverAgent.git  
cd WebDriverAgent  
./Scripts/bootstrap.sh

解决xcode的路径问题

sudo xcode-select -switch <path/to/>Xcode.app  

WebDriverAgent签名

个人开发者账号签名,要注意安装之后在通用设置中设置授权证书为允许... 
XCode打开WebDriverAgent工程,连接上真机 
屏幕快照<em>2017-03-02</em>11.42.18 
在Project中,把能看到的Targets的签名都签上

找到WebDriverAgentLib,在BuildSettings中,找到Code Signing Identity,把debug和release的签名都选择为Developer

XcodeBuild启动IOS调试

因为IOS10之后,无法进行远程调试,所以需要使用iproxy进行端口转发,如果多台机器调试,需要注意得到机器的UDID

idevice_id -l  

进入到WebDriverAgent目录,启动调试

xcodebuild -project WebDriverAgent.xcodeproj -scheme WebDriverAgentRunner -destination 'platform=iOS,id=设备UDID' test  
iproxy 8081 8100 设备UDID  

使用ATX连接Android

Python3下会报ANDROIDHOMEPATH的异常,所以要这么写:

import atx;  
import os;  
os.environ["ANDROID_HOME_PATH"] = "Path to adb folder";  
d = atx.connect();  

使用ATX连接IOS

d = atx.connect('http://localhost:8081', platform='ios');  

参考API