UITest比较期望中元素的值
UITest compare value of element in expectation
我目前正在尝试确定 activity 指示器何时打开或关闭。我意识到,打开时,它的 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
时做错了什么?
提前感谢您的帮助。
假设您已经启动了您的应用程序并且正确设置了activity指示器的可访问性标识符(它似乎你已经完成了),你的代码不起作用的原因是 value
是一个 字符串,而不是一个整数 。
用以下内容替换谓词将使您的代码工作:
let predicate = NSPredicate(format: "value == \"0\"")
我目前正在尝试确定 activity 指示器何时打开或关闭。我意识到,打开时,它的 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
时做错了什么?
提前感谢您的帮助。
假设您已经启动了您的应用程序并且正确设置了activity指示器的可访问性标识符(它似乎你已经完成了),你的代码不起作用的原因是 value
是一个 字符串,而不是一个整数 。
用以下内容替换谓词将使您的代码工作:
let predicate = NSPredicate(format: "value == \"0\"")