2016-01-08 9 views
6

Sto scrivendo un testo dell'interfaccia utente in swift sotto il nuovo framework di test dell'interfaccia utente Xcode 7. il requisito è quello di verificare se la tastiera di sistema è visualizzata in un'app. qualcuno può darmi un indizio su come farlo? graziecome rilevare se la tastiera viene mostrata nel test dell'interfaccia utente Xcode

+0

BTW, quando ero cercando di cercare l'accessibilità nella modalità di debug della tastiera, non posso non vederlo nell'app. quindi suppongo che dal momento che si tratta di una tastiera di sistema, quindi non possiamo vederla – user2823793

risposta

0

Aggiungere due osservatori

NSNotificationCenter.defaultCenter().addObserver(self, selector: "keyboardVisible:", name: UIKeyboardDidShowNotification, object: nil) 
NSNotificationCenter.defaultCenter().addObserver(self, selector: "keyboardHidden:", name: UIKeyboardDidHideNotification, object: nil) 

func keyboardVisible(notif: NSNotification) { 
    print("keyboardVisible") 
} 

func keyboardHidden(notif: NSNotification) { 
    print("keyboardHidden") 
} 

Ogni volta che la tastiera è visibile keyboardVisible sarà chiamato e ogni volta che la tastiera è nascosta sarà chiamato keyboardHidden.

+0

Aggiungo questo nel codice di test dell'interfaccia utente, ma non funziona – user2823793

+1

qui è il mio codeoverride 'func setUp() { super.setUp() NSNotificationCenter.defaultCenter(). AddObserver (self, selector: "keyboardDidShow", nome: UIKeyboardDidShowNotification, object: XCUIApplication()) } ' – user2823793

11

Prova questo controllo:

let app = XCUIApplication() 
XCTAssert(app.keyboards.count > 0, "The keyboard is not shown") 

Oppure verificare la presenza di tasti della tastiera specifiche come:

let app = XCUIApplication() 
XCTAssert(app.keyboards.buttons["Next:"].exists, "The keyboard has no Next button") 

È inoltre possibile controllare le interazioni sulla tastiera:

let app = XCUIApplication() 
app.keyboards.buttons["Next:"].tap()