Я работаю с XCUITest, где на простом экране находятся только имя пользователя textField, пароль textField и кнопка входа.
Я мог бы утверждать, как при нажатии кнопки входа в систему, как имя пользователя textField и пароль textField не пусто.
Но что делать что-то вроде, я хочу набрать текст в поле username и пароль textFields.
Это возможно только в первом поле, так как я получаю сообщение об ошибке с кодом ниже.
func testUserNameShouldNotBeEmptyOnLoginButtonTapped() {
app.launch()
let loginButton = app.buttons["Login"]
let userNameField = app.textFields["UsernameTextField"]
userNameField.tap()
userNameField.typeText("Dummy User")
sleep(2)
let passwordField = app.textFields["PasswordTextField"]
passwordField.tap()
passwordField.typeText("Yohooooooso")
loginButton.tap()
XCTAssertTrue(userNameField.exists)
guard let userNameValue = userNameField.value as? String,
let passwordValue = passwordField.value as? String else {
XCTAssert(true, "UsernameTextFieldUsernameTextFieldUsernameTextField")
return
}
if passwordValue.isEmpty {
XCTAssert(false, "Password Cannot be Empty")
} else if userNameValue.isEmpty {
XCTAssert(false, "UserName Cannot be empty")
} else {
XCTAssert(true, "Both Fields are valid")
}
}
Как я могу изменить фокус клавиатуры для выбора поля или скрыть клавиатуру на кнопке typeText
на первом поле.
Я получаю исключение для passwordTextField, как показано ниже
Neither element nor any descendant has keyboard focus. Event dispatch snapshot: TextField, identifier: 'PasswordTextField'