XCUITest для нескольких текстовых полей Клавиатура не скрывается или клавиатура не фокусируется на втором текстовом поле - PullRequest
1 голос
/ 17 мая 2019

Я работаю с 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'

1 Ответ

0 голосов
/ 23 мая 2019

Сначала я подумал, что текстовое поле вашего пароля скрыто клавиатурой, когда вы пытаетесь нажать на него, чтобы получить фокус.Вам следует либо закрыть клавиатуру, либо немного прокрутить, чтобы сделать текстовое поле видимым.

Вы также можете использовать свойство isHittable, чтобы быть уверенным, что элементы могут быть нажаты.

...