xcode 編譯webdriveragent


IOS 自動化環境搭建

xcode配置

  1. 下載WebDriverAgent

https://github.com/appium/WebDriverAgent

  1. 打開項目,找到WebDriverAgent.xcodeproj,雙擊打開

  2. 配置開發者賬號,自己的AppleID也可以

打開code配置

新增賬號

選擇AppleID

添加自己的AppleID當開發者賬號使用

找到配置文件

選擇自己的開發者賬號

找到要編譯的報名修改

修改編譯的包ID,需要區分,不然會報錯

選擇編譯的項目

選擇自己的手機

編譯

成功之后,需要等會,直到手機出來webdriveragentrunner圖標

如果編譯需要輸入登錄密碼,這個密碼是電腦的登錄密碼,不是AppleID的密碼,如果輸入后無效,往下看

打開鑰匙串,找到Apple Apple Development,選擇始終信任,輸入電腦登錄密碼,然后再打開這個,改回使用系統默認,再次輸入電腦登錄密碼。然后再進行編譯(懷疑是xcode的bug)

原理:通過iOS手機上的webdriveragent在手機上通信,使用過tidevice啟動webdriveragent,通過HTTP的方式,然后使用封裝好的wda框架,對APP進行點擊等操作,和Android 的atx原理一致

macaca 查看元素:https://www.jianshu.com/p/2ec6f0a1f45a

  1. 需要一個iOS手機,並安裝webdriveragent---(找鵬龍裝,還需要找iOS開發把手機uuid加入到到公司的開發者賬號里面)

  2. 安裝阿里雲第三方Python包,通過這個包,可以不需要Mac電腦,只需要有Python環境即可:https://github.com/alibaba/taobao-iphone-device

Python3.7+

pip3 install -U tidevice

tidevice version 安裝后查看版本號

啟動webdriveragent

tidevice wdaproxy -B com.julive.WebDriverAgentRunner.xctrunner --port 8200

參數說明:第一個參數是我們用的包,類似pip

第二個參數包涵了兩個命令:Run XCTest和Relay,run xctest 相當啟動webdriver,relay做端口轉發,從手機上的端口轉發到電腦上的端口

第三個參數-B 系統參數,類似於有這個參數知道后面還有其他參數

第四個參數 com.julive.WebDriverAgentRunner.xctrunner這是通過xcode打的一個iOS應用,到時候會通過這個應用通信, --port 8200 端口號,默認從手機的8200端口轉發到電腦上的8200端口,需要用自己手機上的包名,不是同一個人打包的,報名也不一樣

如下表示啟動成功。

通過瀏覽器訪問:http://localhost:8200/ 能訪問即可

  1. 啟動實例

啟動實例我們使用facebook-wda,https://github.com/openatx/facebook-wda

wda 是atx的衍生產品,和Android的atx同源,非Facebook官方項目,這里可以不用appium了

import time

import wda

c = wda.Client("http://localhost:8200/") # 連接

print(c.status) # 打印狀態

with c.session('com.netease.cloudmusic') as s: # 打開APP

time.sleep(10)

print(s.orientation)

s(text='我的').tap() # 點擊

time.sleep(3)

s(text='播客').get().value # 獲取value

print(s(text="播客").exists) # 判斷元素是否存在

time.sleep(3)

e = s(text='雲村').get(timeout=10.0) # 找元素,等10秒

time.sleep(3)

e.tap() # 找到后點擊

time.sleep(5)

4.常用命令

tidevice list 列出連接設備

# 安裝應用 $ tidevice install example.ipa

# 指定設備安裝 $ tidevice --udid $UDID install https://example.org/example.ipa

# 卸載應用 $ tidevice uninstall com.example.demo

# 啟動應用 $ tidevice launch com.example.demo

# 停止應用 $ tidevice kill com.example.demo

# 查看已安裝應用 $ tidevice applist

 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM