儘可能升級Xcode到最新版,保持iPhone的版本大於9.3git
從github上下載代碼github
git clone https://github.com/facebook/WebDriverAgent
運行初始化腳本npm
./Scripts/bootstrap.sh
該腳本會使用Carthage下載全部的依賴,使用npm打包響應的js文件bootstrap
執行完成後,直接雙擊打開WebDriverAgent.xcodeproj
這個文件。xcode
由於安裝到真機上都是須要證書籤名的,用免費的證書我沒有搞定,最後用的仍是99美圓的開發者證書。瀏覽器
畫圈的地方,從左向右依次點擊。最後Team那一欄,選擇你買到的開發者證書賬號。(我的證書也能夠)框架
接着在TARGETS裏面選中WebDriverAgentRunner,用一樣的方法設置好證書ide
若是是免費版的我的證書,還須要修改下WebDriverAgent的BundleID,隨便加點後綴,只要不跟其餘人的重名就好 (這裏參考了macaca的一篇文章 https://testerhome.com/topics/8085 )測試
菜單欄選擇目標設備ui
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,就能夠獲取到元素信息了
一般來講爲了持續集成,可以所有自動化比較好一些
# 解鎖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,我試了試,就算不改也挺正常的。
還有一些奇怪的問題,好比
Failed to authorize rights (0x1) with status: -60007
The bundle 「WebDriverAgentRunner」 couldn’t be loaded because it is damaged or missing necessary resources
在這個官網Wiki裏面能夠找到解決辦法 https://github.com/facebook/WebDriverAgent/wiki/Common-Issues
若是汗流浹背,弄了好久仍是沒搞定。嘗試下這些步驟
git pull
更新WebDriverAgent的代碼最後附上基於Python自動化框架地址https://github.com/NetEaseGame/ATX
Xcode問題多多,願WDA與你同在。