UI Testing實(shí)現(xiàn)IOS自動(dòng)化的菜鳥教程-3-三個(gè)基本API

XCTest UI Testing API:

XCUIApplication:理解成容器,所有的元素查找操作都在上進(jìn)行。

XCUIElementQuery:查找方式,查找的結(jié)果是一個(gè)或者多個(gè)XCUIElement,方便之后進(jìn)行操作。

XCUIElement:找到的元素,可以進(jìn)行相關(guān)的操作(點(diǎn)擊,輸入等)。


在上一章,我們利用錄制工具進(jìn)行錄制,并且成功的出現(xiàn)了第一行自動(dòng)化的代碼:

XCUIApplication().tables.buttons["點(diǎn)擊登錄"].tap()


圖1:元素基本操作

XCUIApplication

對(duì)于XCUIApplication(),自己的理解是,這就是待測(cè)的目標(biāo)APP程序的一個(gè)實(shí)例,所有對(duì)元素的操作都即將此上面進(jìn)行操作。

往上查看,其實(shí)在SetUp階段,已經(jīng)對(duì)XCUIApplication()進(jìn)行了操作,如圖2。

圖2:?jiǎn)?dòng)程序

右鍵點(diǎn)擊XCUIApplication(),選擇“Jump to Definition”查看定義,如圖3,可以看到XCUIApplication()有2個(gè)常用的方法launch()和terminate(),如圖4,從名字可以看出,一個(gè)是啟動(dòng)程序,一個(gè)是關(guān)閉程序。

圖3:查看定義


圖4:XCUIApplication的2個(gè)方法

我理解的是APP上的所有元素都為XCUIApplication()底下的子元素。因此當(dāng)需要查找某個(gè)元素進(jìn)行操作或者查看值的時(shí)候,都是從XCUIApplication()出發(fā)進(jìn)行查找。

XCUIElementQuery

XCUIElementQuery的作用,按我的理解,是跟web UI 自動(dòng)化工具selenium里頭 findelementbyXpath(id/css/class)一個(gè)原理,根據(jù)某個(gè)條件去查找當(dāng)前可視頁(yè)面所擁有的元素,返回一個(gè)或多個(gè)元素(XCUIElement)。獲取到一個(gè)的之后,可以直接進(jìn)行操作,多個(gè)的時(shí)候,需要進(jìn)行過濾,找到真正需要的那個(gè),再進(jìn)行操作。

XCUIElementQuery繼承XCUIElementTypeQueryProvider,可以從XCUIElementTypeQueryProvider(圖5)那看到當(dāng)前支持的元素類型,button,table,textfiled等等,以后遇到可疑的元素,可以從這看能不能查到對(duì)應(yīng)的。

圖5:XCUIElementTypeQueryProvider支持的元素類型

XCUIElement

XCUIElement是確確實(shí)實(shí)的元素,可以進(jìn)行相關(guān)操作,用selenium最多的是click和sendkeys,這里用的最多的是tap和typeText,作用是等價(jià)的。IOS由于手機(jī)環(huán)境,有一些額外的動(dòng)作,可以通過右鍵tap,jump to Definition 查看更多的動(dòng)作,比如press(長(zhǎng)按),swipeUp(從下往上劃),swipeLeft(從右往左劃)等等,如圖6。


圖6:tap的種類

小結(jié)

做UI自動(dòng)化的入門級(jí)別水平,就是懂得根據(jù)規(guī)則,查找UI上的元素,并且給這些元素發(fā)送一些簡(jiǎn)單指令。了解了這3個(gè)api,基本上就可以控制元素做一些基本的行為了,能看到元素在“自動(dòng)”完成一些事情,感覺也跟“自動(dòng)化”掛鉤了,不是么? :)

下一章從登錄的一個(gè)測(cè)試用例開始,看看需要寫一些什么來完成一條用例。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容