在观看了2017年的WWDC和XCTest视频之后,我更新了我的测试以使用XCTests中的最新添加。
我最近升级到Xcode 9 Beta,运行OS塞拉利昂10.12.4
之后,我使用XCUIElement()创建元素实例的所有测试都失败了。
XCTAssertTrue(XCUIElement().scrollToElement(tablesQuery.cells.staticTexts"Featured").exists)示例代码行:
--这是我得到的错误: '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)
}任何帮助都是非常感谢的!
发布于 2017-06-16 18:20:18
您不能直接初始化XCUIElements -您必须通过XCUIApplication访问它们,这是XCUIElement的一个子类。如果您从XCUIApplication调用滚动方法,它将工作。
let app = XCUIApplication()
XCTAssertTrue(app.scrollToElement(app.tables.cells.staticTexts["Featured"]).exists)https://stackoverflow.com/questions/44578200
复制相似问题