如何在检查后是否启用了按钮?
我在这里找到了这个样本,但它对我的案例没有用。
Delay/Wait in a test case of Xcode UI testing
这是代码的一部分:
let app = XCUIApplication()
let button = app.buttons["Tap me"]
let exists = NSPredicate(format: "exists == 1")
expectationForPredicate(exists, evaluatedWithObject: button){
button.tap()
return true
}
waitForExpectationsWithTimeout(5, handler: nil)
但点击按钮我的测试失败了。 感谢
答案 0 :(得分:5)
您的代码示例不会检查该按钮是否已启用,只有该按钮存在。
如果按钮存在,您将传入expectationForPredicate
的块,即使该按钮被禁用,也会点按该按钮。
要包含对启用按钮的检查:
let app = XCUIApplication()
let button = app.buttons["Tap me"]
let exists = NSPredicate(format: "exists == 1")
expectationForPredicate(exists, evaluatedWithObject: button) {
// If the button exists, also check that it is enabled
if button.enabled {
button.tap()
return true
} else {
// Do not fulfill the expectation since the button is not enabled
return false
}
}
waitForExpectationsWithTimeout(5, handler: nil)