我正在爲我的iOS應用程序實現UITests。 到目前爲止,我已經能夠做一些簡單的測試,但我已經到了一個tableView有兩個部分。每個部分都有一個包含靜態文本的sectionHeaderView,例如。 「第1部分」和「第2部分」,採用正常的部分標題樣式。如何正確使用XCTest尋找staticText
執行app.tables.staticTexts["SECTION 1"].exists
時,返回true
。這是第一部分,當視圖加載時在頂部可見。
執行相同操作時,對於「第2部分」,返回false
。本節的SectionHeaderView在這個視圖之外,所以我認爲這是問題,但事實證明它不是.. 我試過app.swipeUp()
,它成功地將第二部分帶入屏幕。在swipeUp之後,我睡了幾秒鐘以便視圖解決,並執行相同的檢查,但它無法找到第二個sectionView。
滾動下來之後,我試圖打印出app.tables.staticTexts.debugDescription
看看它可以發現,這僅說明了第一部分,以及一個tableFooterView我在的tableView的最底部。
當我執行app.tables.staticTexts["SECTION 2"].exists
時,我可以從字面上看到模擬器上的「SECTION 2」文本。然而這個測試並不存在。
爲什麼我的第二個SectionHeaderView對XCTest完全不可見?難道是因爲我特別禁用了這種視圖上的某種可訪問性變量?我找不到任何..
編輯,輸出:
t = 32.25s Find: Descendants matching type Table
t = 32.26s Find: Descendants matching type StaticText
t = 32.26s Find: Elements matching predicate '"SECTION 1" IN identifiers'
Found SECTION 1. Will scroll down to find Section 2.
t = 32.26s Swipe up Target Application 0x6080000bbf60
t = 32.26s Wait for app to idle
t = 32.30s Find the Target Application 0x6080000bbf60
t = 32.30s Snapshot accessibility hierarchy for my.bundle.identifier
t = 33.09s Wait for app to idle
t = 33.14s Synthesize event
t = 33.42s Wait for app to idle
Slept for 3 seconds. Have scrolled down. SECTION 2 in view now.
t = 38.86s Snapshot accessibility hierarchy for my.bundle.identifier
t = 39.64s Find: Descendants matching type Table
t = 39.65s Find: Descendants matching type StaticText
t = 39.65s Find: Elements matching predicate '"SECTION 2" IN identifiers'
t = 39.66s Assertion Failure: MyUITests.swift:347: XCTAssertTrue failed - SECTION 2 does not exist
t = 39.66s Tear Down
當你看第二部分頭,輸出是否說它使用緩存的快照/層次結構? – Oletha
@Oletha否..查看更新後的問題。 – Sti