Я тестирую поведение веб-приложений с помощью Cucumber (используя Selenium и Watir под капотом). Мое веб-приложение имеет HTML5-страницы и использует новый атрибут "required". Если у меня есть форма ввода данных с обязательным полем, и я отправляю эту форму с пустым полем, я хотел бы убедиться, что веб-приложение правильно отвечает с ошибкой.
К сожалению, при тестировании с использованием веб-браузера HTML5 сообщение об ошибке, которое появляется при неудачной проверке поля, кажется, не доступно для Cucumber через веб-драйвер. В любом случае, форма не отправляется, и страница остается в форме ввода данных.
С другой стороны, при тестировании в автономном режиме или в браузере, не поддерживающем HTML5, форма может отправляться, что позволяет моему веб-приложению перехватить ошибку и отправить пользователя обратно на страницу формы с сообщением об ошибке.
Во втором случае я легко могу проверить наличие сообщения об ошибке, поскольку оно является частью HTML-кода, представленного на странице. Моя проблема в том, что я не могу понять, как написать один тестовый сценарий, который проверит состояние ошибки как в ситуациях без браузера, так и в браузере HTML5.
Возможно, это невозможно при текущем состоянии веб-драйверов Selenium и Watir. Но если у кого-то есть идеи, как я могу проверить всплывающее сообщение об "требуемой" ошибке HTML5, это очень поможет.
ОБНОВЛЕНИЕ 2012-06-02:
Вот пример страницы sample page с выборкой предупреждений браузера HTML5.
Есть обязательный текст и выберите, текстовое поле, показывающее внутренний текст подсказки, и текстовое поле с проверкой ввода регулярных выражений. На странице нет ни CSS, ни javascript, чтобы запутать проблему, это просто ванильный HTML5. См. страницу w3schools об атрибутах полей HTML5 для полной разбивки. Форма отправляется в простой CGI-скрипт, который просто повторяет ввод формы, предполагая, что форма выполнена успешно. Ошибка отправки останется на странице примера формы.