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
Odpowiedz
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.
Dodaję to do kodu testu interfejsu użytkownika, ale to nie działa – user2823793
tutaj jest mój kodoverride 'func setUp() { super.setUp() NSNotificationCenter.defaultCenter(). AddObserver (własny, selektor: "keyboardDidShow", nazwa: UIKeyboardDidShowNotification, obiekt: XCUIApplication()) } – user2823793
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()
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