要在UITest期間處理系統提醒您必須添加一個UI中斷監視器:
func testPhotoLibraryAccess() {
let app = XCUIApplication()
app.launch()
// when system alert is shown -> dismiss it by pressing "OK"
// (the description parameter is only there for debugging purposes
// so it can be anything you like)
addUIInterruptionMonitor(withDescription: "Photos Access Alert") { (alert) -> Bool in
alert.buttons["OK"].tap()
return true
}
// tap button that tries to open user's photo library
app.buttons["Open Photos"].tap()
// select "Moments"
app.buttons["Moments"].tap()
XCTAssert(app.navigationBars["Moments"].exists)
}
爲了使這項工作,你有系統前請確保UI中斷監視器添加警報由您的UITest觸發!
joern的回答是對的。打印調試描述時看不到任何內容的原因是因爲在顯示警報之前視圖層次結構沒有更新。當您下一次嘗試與應用程序交互時(忽略警報),視圖層次結構將會更新,並且它會發現警報並運行中斷處理程序來關閉警報,然後執行您的交互。 – Oletha