2017-09-20 1 views
0

Je me demandais s'il est possible de taper sur le bouton d'appel du système de tel (par exemple tel // 555555555). Parce que si je touche le bouton d'appel, je vais avoir une alerte que j'ai besoin de confirmer mon appel ou l'annuler. C'est possible?Bouton d'appel sur test d'interface utilisateur?

je sur mon code:

addUIInterruptionMonitor(withDescription: "Phone Dialog") { (alert) -> Bool in 
     let button = alert.buttons["Llamar"] 
     if button.exists { 
      button.tap() 
      return true 
     } 
     return false 
    } 
    app.tap() 
    XCTAssert(app.buttons["call_button"].exists, "No se encuentra el boton de llamar") 
    app.buttons["call_button"].tap() 
    sleep(2) 

Toute idée? Cordialement

+0

oui, vous pouvez afficher le contrôleur d'alerte pour appeler. –

+0

Mais, comment puis-je identifier le bouton d'appel? –

+0

comparer le titre ou l'image du bouton pour l'identification du bouton –

Répondre

1

Le UIInteractionMonitor ne fonctionne pas dans le cas de la boîte de dialogue du système d'appel téléphonique. La boîte de dialogue d'appel téléphonique est gérée par le Springboard et non votre application.

Xcode 9 vous permet d'accéder au Tremplin de sorte que vous pouvez appuyer sur le bouton « Appeler » en faisant ceci:

func testPhoneCall() { 
    let app = XCUIApplication() 
    let springboard = XCUIApplication(bundleIdentifier: "com.apple.springboard") 

    app.launch() 
    app.buttons["call_button"].tap() 

    // tap on the call button 
    springboard.buttons["Llamar"].tap() 

} 
+0

Salut @joern, j'ai essayé d'appeler le moniteur d'interruption mais il n'a pas pu être appelé. Avez-vous une idée de la raison de cela? –

+0

Avez-vous ajouté le moniteur au début de votre test avant d'appuyer sur le bouton du téléphone? Et appelez-vous 'app.tap()' juste après avoir ajouté le moniteur? – joern

+0

ci-dessus j'ai mis mon code pour le test. Cependant, cela ne fonctionne toujours pas. Avez-vous la raison pourquoi? –