【发布时间】:2019-03-14 03:00:04
【问题描述】:
我目前正在尝试确定活动指示器何时开启或关闭。我意识到,打开时,它的value 是 1,关闭时是 0。
我正在尝试检查 value 是 1 还是 0,如下所示:
let app = XCUIApplication()
let predicate = NSPredicate(format: "value == 0")
let expectation = expectation(
for: predicate,
evaluatedWith: app.activityIndicators["activityId"],
handler: nil)
if XCTWaiter().wait(for:[expectation], timeout: 20) == .completed {
print ("Activity indicator is off")
} else {
print ("Activity indicator is on")
}
当前的问题是总是会超时。每当我在if 处设置断点并在控制台中输入:
po app.activityIndicators["activityId"].value
结果是:
Optional<Any>
- some : 0
但是,在我让测试再次运行后,到了超时,走else分支。
在预期中访问element 的value 时,谁能看到我做错了什么?
提前感谢您的帮助。
【问题讨论】:
-
您是否启动过您的应用程序?这是您编写的唯一 UI 测试,还是您有其他可以工作的?
-
每天约有 300 万人启动此应用程序,还有大约 20 个其他 UI 测试有效。到目前为止,我们只是通过等待来解决活动指示器,但我想让一些更优雅的东西。如果我可以问,为什么这个问题是相关的?
-
我的意思是在测试中,您是否在与 UI 交互之前致电
app.launch()?