2016-01-08 6 views
6

Ich schreibe einen UI-Text in Swift unter dem neuen Xcode 7 UI-Testframework. Die Anforderung besteht darin, zu testen, ob die Systemtastatur in einer App angezeigt wird. kann mir jemand einen Hinweis geben, wie das geht? DankWie erkennt man, wenn Tastatur in Xcode UI Test angezeigt wird

+0

BTW, als ich Ich versuche im Debug-Modus der Tastatur nach der Erreichbarkeit zu suchen, ich kann sie nicht in der App sehen. also ich denke, dass, weil es eine Systemtastatur ist, so können wir es nicht sehen – user2823793

Antwort

0

zwei Beobachter

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") 
} 

hinzufügen Jedes Mal, wenn die Tastatur sichtbar keyboardVisible aufgerufen wird, und, wenn die Tastatur verdeckt wird keyboardHidden aufgerufen.

+0

Ich füge das in den UI-Testcode, aber es funktioniert nicht – user2823793

+1

hier ist mein Codeoverride 'func setUp() { super.setUp() NSNotificationCenter.defaultCenter(). AddObserver (self, Selektor: "keyboardDidShow", Name: UIKeyboardDidShowNotification, Objekt: XCUIApplication()) } ' – user2823793

11

Versuchen Sie, diese Kontrolle:

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

Oder schauen Sie für bestimmte Tasten auf der Tastatur wie:

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

Sie können auch Interaktionen steuern auf der Tastatur:

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