在观看2017年WWDC Xcode和XCTest视频后,我更新了我的测试,以便在XCTests中使用最新添加的内容。
我最近升级到Xcode 9 Beta,运行OS X Sierra 10.12.4
在此之后,我使用XCUIElement()创建元素实例的所有测试都失败了。
示例代码行 XCTAssertTrue(XCUIElement()scrollToElement(tablesQuery.cells.staticTexts ["精选&#34]。。)存在)
这是我得到的错误: '的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)
}
感谢任何帮助!
答案 0 :(得分:0)
您无法直接初始化XCUIElements - 您必须通过XCUIApplication访问它们,XCUIApplication是XCUIElement的子类。如果从XCUIApplication调用滚动方法,它将起作用。
let app = XCUIApplication()
XCTAssertTrue(app.scrollToElement(app.tables.cells.staticTexts["Featured"]).exists)