前言: PC、Android的UI自动化玩的比较多,但是IOS的玩得少,第一次使用MAC机,搭建IOS环境,特记录一下:
MAC: 10.14.4 + XCode: 10.1 + appium: 1.13.0 + 模拟器 iphone 8(IOS12.1)【最终版本关系】
appium-desktop: 1.13.0 (后补装的,目的是用Inspector)
准备工作:
安装npm,cnpm(指定cnpm安装源为淘宝)
npm install -g cnpm --registry=https://registry.npm.taobao.org
1,brew 安装
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/uninstall)"
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
Brew update
2,安装 node
Brew install node
3, 下载 Xcode 和 CommandLineTools
https://developer.apple.com/download/more/
Xcode下载的是 10.1版本【下过多个版本,9.3,9.4,10.2,只有10.1能成功启动app】
选择版本:
sudo Xcode-select -s /Users/01371243/Downloads/Xcode_10.1.app
(我有多个目录Xcode_9.3.app, Xcode_9.4.app,Xcode_10.1.app ,Xcode.app目录缺省是10.2,最先安装的】
xcode-select --print-path (打印当前使用的xcode目录)
4, 安装jdk8
https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
5, 安装sdk manager
http://down.tech.sina.com.cn/page/45703.html
6,安装appium 建议用cnpm代替npm
cnpm install -g appium
cnpm install -g nappium-doctor
我安装路径:/usr/local/lib/node_modules/appium
cnpm install wd
7、配置Android环境变量
在 ~/.bash_profile文件中添加path
export ANDROID_HOME=~/Library/Android/sdk/
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_171.jdk/Contents/Home #jdk安装路径
export PATH=~/bin:$PATH:/usr/local/bin:$ANDROID_HOME/platform-tools/:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
8、安装其他依赖brew install libimobiledevice --HEAD
npm install -g ios-deploy
brew install carthage
9 配置 WebDriverAgent
(1)首先进入WebDriverAgent所在文件目录下:
首先替换WebDriverAgent,从github下载最新的替换appium的如下目录
git clone https://github.com/facebook/WebDriverAgent.git
替换:/usr/local/lib/node_modules/appium/node_modules/appium-xcuitest-driver/WebDriverAgent
(2)目录/usr/local/lib/node_modules/appium/node_modules/appium-xcuitest-driver/WebDriverAgent
下执行:./Scripts/bootstrap.sh
10 运行WebDriverAgent
1)xcode 打开
/usr/local/lib/node_modules/appium/node_modules/appium-xcuitest-driver/WebDriverAgent/
WebDriverAgent.xcodeproj 工程文件
2) 添加自己的AppleID: account:Xcode -> Preferences -> account -> 左下角 + 没有的新注册一个
3)更改bundle id:这里的bundle id就相当于一个App的唯一识别号,更改的规则随意,只要确认不会与有重复即可;所有的targets都需要修改。
例如我自己改为:WebDriverAgentLib: com.awen.WebDriverAgentRunner,
WebDriverAgentRunner:com.awen.WebDriverAgentRunner,
UnitTests:com.awen.wda.unitTests
IntegrationTests_1: com.awen.wda.integrationTests (IntegrationTests_2,IntegrationTests_3 一致)
IntegrationApp:com.awen.wda.integrationApp
4) 所有target 都填上签名 自己的账号
5)deployment info
deployment target 设置的是11.3(不要高于12.1) ,device : iPhone
我的一页例子:
11 验证环境
(1)终端输入:appium-doctor
(2)运行WebDriverAgentRunner
1:选择scheme为WebDriverAgentRunner -> 2:选择运行设备,模拟器和真机都可以 -> 3:选择要构建的方式 ->4:选择Test方式的步骤验证是否能成功运行WebDriverAgentRunn (我选择的是iphone 8 IOS:12.1 ,WebDriverAgent 会安装到虚拟机
日志打印包含了:
(3)app 启动调试
因为用的是模拟器,需要开发吧app打包成 xxx.app,模拟器的IOS版本12.1,拖入模拟器就可以安装。
配置好Capabilities, bundleId为app的,可以问开发人员。udid为模拟器的id【下图为appium-desktop的显示】。
ok,用Insepctor 获取元素位置,剩下的工作就是将android工程兼容IOS了。
备注:
1,一定要验证启动连接app, 因为我开始用xcode12.2时,app会不断重启。经过血肉之躯替换Xcode9.3, 9.4, 10.1, 才终于发现10.1 既能让WebDriverAgent编译通过,又能成功拉起app。
2, 最终appium, appium-desktop都能用,都属于appium 服务端, desktop 它是几个Appium相关工具的组合, 包含appium了。 可以在界面上启动session,也可以通过代码启动session:。启动其中一个就好,appium-desktop定位元素比较好用,后续推荐使用它。
https://github.com/appium/appium-desktop/releases
主要参考:
https://www.jianshu.com/p/63792fd06729