【轉自Testerhome】iOS 真機如何安裝 WebDriverAgent

阿里瓜瓜發表於2017-09-25

開始

儘量升級Xcode到最新版,保持iPhone的版本大於9.3

從github上下載程式碼

git clone https://github.com/facebook/WebDriverAgent

執行初始化指令碼

./Scripts/bootstrap.sh

該指令碼會使用Carthage下載所有的依賴,使用npm打包響應的js檔案

執行完成後,直接雙擊開啟WebDriverAgent.xcodeproj這個檔案。

設定證照

因為安裝到真機上都是需要證照籤名的,用免費的證照我沒有搞定,最後用的還是99美元的開發者證照

 

 

 

畫圈的地方,從左向右依次點選。最後Team那一欄,選擇你買到的開發者證照帳號。(個人證照也可以)

接著在TARGETS裡面選中WebDriverAgentRunner,用同樣的方法設定好證照

 

 

如果是免費版的個人證照,還需要修改下WebDriverAgent的BundleID,隨便加點字尾,只要不跟其他人的重名就好 (這裡參考了macaca的一篇文章 https://testerhome.com/topics/8085 )

 

 

執行與測試

選單欄選擇目標裝置

 

 

Scheme選擇WebDriverAgentRunner

 

 

最後執行 Product -> Test

一切正常的話,手機上會出現一個無圖示的WebDriverAgent應用,啟動之後,馬上又返回到桌面。這是很正常的不要奇怪。

此時控制檯介面可以看到裝置的IP。如果看不到的話,使用這種方法開啟

 

 

通過上面給出的IP和埠,加上/status合成一個url地址。例如http://10.0.0.1:8100/status,然後瀏覽器開啟。如果出現一串JSON輸出,說明WDA安裝成功了。

埠轉發

有些國產的iPhone機器通過手機的IP和埠還不能訪問,此時需要將手機的埠轉發到Mac上。

brew install libimobiledevice
iproxy 8100 8100

執行轉發方法後控制檯顯示:waiting for connection。如圖所示:

使用iproxy --help 可以查到更具體的用法。 這時通過訪問http://localhost:8100/status確認WDA是否執行成功。

而inspector的地址是http://localhost:8100/inspector, inspector是用來檢視UI的圖層,方便寫測試指令碼用的

注:如果localhost不成功,輸入http://127.0.0.1:8100/status。

http://127.0.0.1:8100/inspector,就可以獲取到元素資訊了

 

 

使用終端替代Xcode

通常來說為了持續整合,能夠全部自動化比較好一些

# 解鎖keychain,以便可以正常的簽名應用,
PASSWORD="replace-with-your-password"
security unlock-keychain -p $PASSWORD ~/Library/Keychains/login.keychain

# 獲取裝置的UDID
UDID=$(idevice_id -l | head -n1)

# 執行測試
xcodebuild -project WebDriverAgent.xcodeproj -scheme WebDriverAgentRunner -destination "id=$UDID" test

其他問題

論壇裡有帖子說要修改BundleID,我試了試,就算不改也挺正常的。
還有一些奇怪的問題,比如

  1. Failed to authorize rights (0x1) with status: -60007
  2. The bundle “WebDriverAgentRunner” couldn’t be loaded because it is damaged or missing necessary resources

在這個官網Wiki裡面可以找到解決辦法 https://github.com/facebook/WebDriverAgent/wiki/Common-Issues

如果汗流浹背,弄了很久還是沒搞定。嘗試下這些步驟

  1. git pull更新WebDriverAgent的程式碼
  2. 解除安裝手機上的WebDriverAgent
  3. 更新Xcode
  4. 更新Mac系統
  5. 重啟Mac

結尾

最後附上基於Python自動化框架地址https://github.com/NetEaseGame/ATX

Xcode問題多多,願WDA與你同在。

原文連結

相關文章