目前,我正在使用XCTest iOS框架并使用.exists函数来检查元素的存在。想知道是否有任何其他方法来检查UI上元素的存在,因为.exists正在遇到问题。测试在第一次运行时获得成功,但是当它第二次运行时,它会失败,因为脚本单击UI上不存在的元素可能是因为第一次在应用程序中加载的元素仍然隐藏但存在。
请让我知道检查当前屏幕元素存在的任何功能。
答案 0 :(得分:0)
我也在寻找一种等待元素出现而不是使用sleep方法的方法。有时UI元素需要更长时间才能加载,但这并不意味着它最终不会出现。此时,您可以检查使用.exists
有一个XCUIApplication类参考,不是由apple托管,而是在OBJ-C中: http://masilotti.com/xctest-documentation/index.html
更新:我想我找到了这个链接Delay/Wait in a test case of Xcode UI testing
的解决方案使用NSPredicate课程为我工作。
let welcomePage = app.staticTexts["Landing Page"]
let existsPredicate = NSPredicate(format: "exists == 1")
expectationForPredicate(existsPredicate, evaluatedWithObject: LandingPageLoad, handler: nil)
waitForExpectationsWithTimeout(5, handler: nil)
答案 1 :(得分:0)
我引用这个答案,这个XCUIElementQuery函数可以处理未创建元素的情况:
open func matching(identifier: String) -> XCUIElementQuery