前言: 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