Ios 除了.exists函数外,是否有其他方法检查XCTest中是否存在元素?
目前,我正在XCTest iOS框架中工作,并使用.exists函数检查元素的存在。想知道是否有其他方法检查UI上元素的存在,因为存在问题。测试在第一次运行时会成功,但在第二次运行时会失败,因为脚本单击了UI上不存在的元素,这可能是因为第一次在应用程序中加载的元素仍然隐藏,但仍然存在Ios 除了.exists函数外,是否有其他方法检查XCTest中是否存在元素?,ios,swift,xctest,xcode7-beta6,Ios,Swift,Xctest,Xcode7 Beta6,目前,我正在XCTest iOS框架中工作,并使用.exists函数检查元素的存在。想知道是否有其他方法检查UI上元素的存在,因为存在问题。测试在第一次运行时会成功,但在第二次运行时会失败,因为脚本单击了UI上不存在的元素,这可能是因为第一次在应用程序中加载的元素仍然隐藏,但仍然存在 请让我知道任何检查当前屏幕元素存在的功能 我也在寻找一种等待元素出现的方法,而不是使用sleep方法。有时,UI元素的加载时间更长,但这并不意味着它最终不会出现。此时可以检查是否使用.exists 有一个XUIAp
请让我知道任何检查当前屏幕元素存在的功能 我也在寻找一种等待元素出现的方法,而不是使用sleep方法。有时,UI元素的加载时间更长,但这并不意味着它最终不会出现。此时可以检查是否使用.exists 有一个XUIApplication类引用,不是由apple托管的,而是在OBJ-C中: 更新:我想我从这个链接中找到了一个解决方案 使用NSPredicate类对我来说很有效
let welcomePage = app.staticTexts["Landing Page"]
let existsPredicate = NSPredicate(format: "exists == 1")
expectationForPredicate(existsPredicate, evaluatedWithObject: LandingPageLoad, handler: nil)
waitForExpectationsWithTimeout(5, handler: nil)
首先创建一个常数,它是您正在等待的值或对象的常数
使用NSPredicate类创建另一个常量以比较
对象
然后将expectationForPredicate方法与变量一起使用
最后给处理程序一个超时上限
我参考了这个答案,这个XUIElementQuery函数可以处理未创建元素的情况:
open func matching(identifier: String) -> XCUIElementQuery
参考:
如果该元素不存在,您不应该检查它吗?听起来像是在更改您的资产的登录名。