Как проверить корректность работы клавиатуры при вводе и после нажатия кнопки
Что проверяют
Умеете ли вы уточнить задачу, прежде чем писать кейсы: речь почти всегда об экранной клавиатуре на мобильном или в мобильном вебе, а она живёт отдельно от поля ввода. Следом спрашивают, как это автоматизировать и что проверить на маленьком экране.
Как отвечать
Разбейте проверку на две фазы. При вводе:
- тип клавиатуры: для телефона цифровая, для почты с
@. В вебе за это отвечаютtypeиinputmode, в нативеkeyboardTypeна iOS иinputTypeна Android; - кнопка ввода: подпись «Далее», «Готово», «Отправить» задаётся
enterkeyhint,returnKeyTypeилиimeOptions. «Далее» переводит фокус в следующее поле, а не отправляет форму; - автоисправление и заглавные: в логине и почте они выключены, в поле пароля нет подсказок;
- перекрытие: клавиатура не закрывает активное поле и кнопку, экран прокручивается. Проверьте маленький экран, альбомную ориентацию и сторонние клавиатуры вроде Gboard и SwiftKey;
- сам ввод: русская и английская раскладка, эмодзи, вставка из буфера, голосовой ввод, маски телефона и даты.
После нажатия кнопки:
- клавиатура: скрывается, если экран не ждёт следующего ввода;
- повторное нажатие: быстрый двойной тап не отправляет форму дважды;
- ошибка валидации: введённое сохраняется, фокус встаёт на поле с ошибкой;
- физическая клавиатура: на вебе Enter отправляет форму, Tab идёт по полям в логичном порядке.
В автотестах Appium даёт isKeyboardShown() и hideKeyboard(). В Playwright помните, что fill() вставляет значение целиком без событий нажатий, а для масок и обработчиков keydown нужен pressSequentially().
Где спотыкаются
Не спрашивают платформу и начинают с набора символов, хотя основные баги в поведении клавиатуры, а не в символах.
Проверяют только на одном флагмане. Перекрытие кнопки клавиатурой всплывает на маленьких экранах и в альбомной ориентации.
Автоматизируют через setValue или fill и получают зелёный тест, хотя маска поля при реальном наборе ломается.