2017-09-28 33 views
0

我想写一个XCUITest来获取系统对话框/警报。如何在Xcode 9中使用Swift 3/Swift 4处理它? 它应该找到警报并单击两个显示的按钮中的一个。 每次,如果我搜索警报,系统都找不到它们。在XCode 9中使用Swift 3/Swift 4在XCUITest中处理系统对话框(警告)

XCUIApplication().alerts.element.exists // Will get nothing 
XCUIApplication().alerts.element.buttons.element(boundBy: 0) // Will get nothing too. 
+0

'(LLDB)PO XCUIApplication()alerts.element(boundBy:0)。 吨= 274.61s快照可访问层次结构具有PID 910 吨= 275.27s应用查找:后代匹配类型警报 查询链: →查找:目标应用0x1702b1100 ↪︎Find:后代匹配类型警报 ↪︎Find:在索引元素0 (LLDB)PO XCUIApplication()alerts.buttons.count 吨= 300.49s获取匹配的数量。 :后代匹配类型按钮 t = 300.63s快照accessibi适用于pid应用程序的应用程序层次结构910 t = 300.71s查找:后代匹配类型警报 0' – Saintz

回答

2

您可以尝试使用addUIInterruptionMonitor。下面的示例是当屏幕上出现按钮时允许系统警报对话框。

addUIInterruptionMonitor(withDescription: "System alert") { (alert) -> Bool in 
     if alert.buttons["Allow"].exists { 
      alert.buttons["Allow"].tap() 
     } 
     return true 
    }