2017-09-28 3 views
0

Ich möchte eine XCUITest schreiben, wo ich ein Systemdialog/Alarm erhalten. Wie kann ich mit Swift 3/Swift 4 mit Xcode 9 umgehen? Es sollte die Warnung finden und auf eine der beiden angezeigten Schaltflächen klicken. Jedes Mal, wenn ich nach dem Alarm suche, kann das System sie nicht finden.Handle Systemdialog (Alarm) in XCUITest mit Swift 3/Swift 4 in Xcode 9

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). T = 274.61s Snapshot Zugänglichkeit Hierarchie für Anwendung mit pid 910 t = 275.27s Finde: Nachkommen Typ Benachrichtigungs Abfragekette passende Finden →: Zielanwendung 0x1702b1100 ↪︎Find: Nachkommen Typ passenden Benachrichtigungs ↪︎Find: Element bei Index 0 (LLDB) po XCUIApplication() alerts.buttons.count t = Anzahl der Spiele 300.49s Holen Sie sich für. : Nachkommender Typ Button t = 300.63s Snapshot accessibi lity Hierarchie für app mit pid 910 t = 300.71s Suchen: Nachkommen entsprechen Typ Alert 0' – Saintz

Antwort

2

Sie können versuchen, addUIInterruptionMonitor zu verwenden. In diesem Beispiel tippen Sie auf die Schaltfläche Allow on system alert Dialogfeld, wenn es auf dem Bildschirm angezeigt wird.

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