前提:ios真機環境已安裝ok
運作ios自動化的步驟如下:
步驟1、手機端安裝WebDriverAgent
1、下載下傳webdriverAgent,從github上下載下傳代碼
git clone
https://github.com/facebook/WebDriverAgent運作初始化腳本
./Scripts/bootstrap.sh
該腳本會使用
Carthage下載下傳所有的依賴,使用npm打包響應的js檔案
執行完成後,直接輕按兩下打開WebDriverAgent.xcodeproj這個檔案。
2、配置WebDriverAgent環境
在以下三個檔案中都需要進行配置:
(1). 編譯WebDriverAgentLib
注:Bundle identifier:com.xxx.yyyyy (xxx每個人都要不一樣才行)
(2).編譯WebDriverAgentRunner
(3)配置 IntegrationApp
(4)
(5).在終終端輸入:xcodebuild -project WebDriverAgent.xcodeproj -scheme WebDriverAgentRunner -destination 'id=udid' test,待執行完成後手機端會安裝WebDriverAgent。
一切正常的話,手機上會出現一個無圖示的WebDriverAgent應用,啟動之後,馬上又傳回到桌面。這是很正常的不要奇怪
此時控制台界面可以看到裝置的IP。如果看不到的話,使用這種方法打開
通過上面給出的IP和端口,加上/status合成一個url位址。例如
http://10.0.0.1:8100/status,然後浏覽器打開。如果出現一串JSON輸出,說明WDA安裝成功了。
若運作後出現:TEST Fail,如下報錯:
解決:解除安裝手機上的 WebDriverAgentRunner程式,重新執行xcodebuild -project WebDriverAgent.xcodeproj -scheme WebDriverAgentRunner -destination 'id=udid' test,
在進行端口轉發:
有些國産的iPhone機器通過手機的IP和端口還不能通路,此時需要将手機的端口轉發到Mac上。
$ brew install imobiledevice 這裡若出現以下報錯,沒關系,直接往下走:
$ iproxy 8100 8100
接着使用
iproxy --help
可以查到更具體的用法。 這時通過通路
http://localhost:8100/status
确認WDA是否運作成功。
步驟二、打開appium-desktop,啟動appium server+啟動inspector,擷取頁面元素
1、StartServer
2、建立Inspector session
3、建立好session後,session的參數資訊必須和目前連結的裝置資訊一緻,否則會報錯誤資訊,最後start session,就可以看到下圖的dom樹結構,如果出現圖3,則說明需要重新編譯運作WebdriverAgent了
步驟三、在原來架構的基礎上,寫Appdriver驅動
步驟四、寫自動化case
ios的元素擷取可以通過xpath,name,label,assessbilityid擷取,上述通過name獲得
步驟五、運作testng
可以看到case運作正常
參考文檔: