我目前正在尝试确定活动指示灯是打开还是关闭。我意识到,启用时,其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分支。
在期望中访问value
的{{1}}时,有人能看到我在做什么吗?
谢谢您的帮助。
答案 0 :(得分:0)
假设您同时启动了应用和设置了活动指标的可访问性标识符(看来您已经完成),则代码没有这样做的原因value
是一个字符串,而不是整数,这是行不通的。
将谓词替换为以下内容将使您的代码起作用:
let predicate = NSPredicate(format: "value == \"0\"")