在觀看2017年WWDC Xcode和XCTest視頻之後,我更新了測試以使用XCTests中的最新附加內容。Xcode 9:如何使用XCUIElementQuery創建XCUIElement實例?
我最近升級到Xcode的9 Beta版,捉迷藏OS X塞拉利昂10.12.4
在此之後,我曾經XCUIElement()來創建一個元素實例的所有測試,失敗了。
實施例的代碼行: XCTAssertTrue(XCUIElement()scrollToElement(tablesQuery.cells.staticTexts [ 「精選」])的存在。)
這是我的錯誤: 'init()'不可用:使用XCUIElementQuery創建XCUIElement實例。
如果你是好奇scrollToElement()是,它是一個自定義函數來滾動元素被查詢,如果不是在當前視圖中可見。 它是我寫的XCUIElement自定義擴展的一部分。
作爲解決方案的一部分,您是否可以建議: XCUIElement實例如何預計現在創建?
參考: scrollToElement()
open func scrollToElement(_ element: XCUIElement) -> XCUIElement {
while !element.visible() {
swipeUp()
}
return element
}
open func visible() -> Bool {
guard self.exists && !self.frame.isEmpty else { return false }
return XCUIApplication().windows.element(boundBy: 0).frame.contains(self.frame)
}
任何幫助表示讚賞!
爲什麼你需要嘗試創建'XCUIElement'的實例呢?我認爲你應該使'scrollToElement'成爲一種靜態方法。 – AdamPro13
@ AdamPro13好主意,但在'scrollToElement'裏面我使用了XCUIElement中的'swipeUp()'方法,因此它不能變爲靜態的。 – nChetan
您不能僅實例化一個'XCUIElement'實例,因爲它們映射到UI中的現有元素。如果你創建了一個沒有與UI關聯的元素,你將無法對它做任何事情,因爲它什麼都不知道。 – AdamPro13