如何在没有失败测试用例的情况下等待 UI 元素
How to wait for UI element without failing test case
我有一个在我的应用程序首次执行时显示的对话框。因此,我希望我的测试用例能够处理对对话框的响应——但前提是它出现。
如果达到超时,waitForExpectations 方法将出错。
等待这个元素短时间出现,如果没有出现则测试用例不失败的最佳方法是什么?
您将不得不重新实现等待。尽管听起来很糟糕,但我建议使用 Sleep 和 If 语句;您想在等待应用程序完成呈现内容时锁定您的测试线程,然后进行评估。
不幸的是,据我所知,none waitForExpectationsWithTimeout
的选项允许您在超时时间结束时未满足 expectationForPredicate 时不会通过测试。
试试下面的代码:
addUIInterruptionMonitorWithDescription("SYSTEM_DESCRIPTION") { (alert) -> Bool in
alert.buttons["BUTTON_TITLE"].tap()
return true
}
app.buttons["BUTTON_TITLE"].tap()
app.tap()
SYSTEM_DESCRIPTION是系统提示的标题或描述。
BUTTON_TITLE 就像 "OK"、"Allow"、...
在此答案中了解更多信息:
https://whosebug.com/a/32228033/6657951
我有一个在我的应用程序首次执行时显示的对话框。因此,我希望我的测试用例能够处理对对话框的响应——但前提是它出现。
如果达到超时,waitForExpectations 方法将出错。
等待这个元素短时间出现,如果没有出现则测试用例不失败的最佳方法是什么?
您将不得不重新实现等待。尽管听起来很糟糕,但我建议使用 Sleep 和 If 语句;您想在等待应用程序完成呈现内容时锁定您的测试线程,然后进行评估。
不幸的是,据我所知,none waitForExpectationsWithTimeout
的选项允许您在超时时间结束时未满足 expectationForPredicate 时不会通过测试。
试试下面的代码:
addUIInterruptionMonitorWithDescription("SYSTEM_DESCRIPTION") { (alert) -> Bool in
alert.buttons["BUTTON_TITLE"].tap()
return true
}
app.buttons["BUTTON_TITLE"].tap()
app.tap()
SYSTEM_DESCRIPTION是系统提示的标题或描述。
BUTTON_TITLE 就像 "OK"、"Allow"、...
在此答案中了解更多信息: https://whosebug.com/a/32228033/6657951