说明
升级到xcode8之后,原来的iOS UI自动化框架被彻底移除了,采用了xcuitest方案,appium从1.6.0开始更好的支持这个方案
appium使用的模块是appium-xcuitest-driver,其中引用的Facebook提供的WDA方案来驱动iOS的测试,WDA编译应用在真机中必须配置development team和provisioning profile,官方给出了两种方式。
自动配置
自动配置使用的iOS开发的xcconfig配置文件,内容包含:
DEVELOPMENT_TEAM = xxxxxxxxxx
CODE_SIGN_IDENTITY = iPhone Developer
说明:DEVELOPMENT_TEAM指的是一个10位的字符串,用于唯一的标识你的团队。你可以用开发者账号登录苹果的开发者网站:developer.apple.com/account ,点击Membership,Team ID的信息就在团队名称下面。
当生成了这个xcconfig文件之后,在你的DesiredCapabilities中,增加一个属性:xcodeConfigFile
capabilities.setCapability("xcodeConfigFile", getPath() + "/src/main/resources/Config.xcconfig");
注:此处应该使用绝对路径
手动配置
1.找到WebDriverAgent这个项目的位置,一般在:${node_home}/lib/node_modules/.appium_npminstall/appium-xcuitest-driver/2.4.2/appium-xcuitest-driver/WebDriverAgent
2.运行脚本:./Scripts/bootstrap.sh
3.设置team
4.编译验证
直接使用xcode,将那两个target针对真机run一次,没有报错就应该是正常的。
注意:这种方式必须在每次升级appium或重装appium后,都要进行一次
注意事项
1.appium安装完成之后,将WebDriverAgent拷贝一份出来做备份
2.如果在appium-xcuitest-driver的WDA目录操作./Scripts/bootstrap.sh,有问题,可以考虑到你的备份里做
3.要是还是不行,可以直接从https://github.com/facebook/WebDriverAgent git clone一份下来操作
4.如果你在进行测试的时候,还碰到这个问题,那么...
log始终停留在
Continuing to run tests in the background with task ID 1
只能说,记得拷贝一份可以用的WDA是很重要的。