2016-01-08 11 views
6

Piszę tekst interfejsu użytkownika w szybkim tempie pod nowym szkieletem testowym interfejsu Xcode 7. Wymagane jest sprawdzenie, czy klawiatura systemowa jest wyświetlana w aplikacji. Czy ktoś może mi dać wskazówkę, jak to zrobić? DziękiWykrywanie, czy klawiatura jest wyświetlana w teście Xcode UI

+0

BTW, kiedy byłem próbując znaleźć dostępność w trybie debugowania klawiatury, nie widzę jej w aplikacji. tak myślę, że ponieważ jest to klawiatura systemowa, więc nie możemy jej zobaczyć – user2823793

Odpowiedz

0

Dodaj dwóch obserwatorów

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

Gdy klawiatura jest widoczny keyboardVisible zostanie wywołana, a gdy klawiatura jest ukryty keyboardHidden zostanie wywołana.

+0

Dodaję to do kodu testu interfejsu użytkownika, ale to nie działa – user2823793

+1

tutaj jest mój kodoverride 'func setUp() { super.setUp() NSNotificationCenter.defaultCenter(). AddObserver (własny, selektor: "keyboardDidShow", nazwa: UIKeyboardDidShowNotification, obiekt: XCUIApplication()) } – user2823793

11

Spróbuj sprawdzenia:

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

lub sprawdź dla konkretnych klawiszy takich jak:

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

Można również kontrolować interakcje na klawiaturze:

let app = XCUIApplication() 
app.keyboards.buttons["Next:"].tap() 
Powiązane problemy