Как проверить условия ошибок на страницах HTML5 с огурцом?

Я тестирую поведение веб-приложений с помощью Cucumber (используя Selenium и Watir под капотом). Мое веб-приложение имеет HTML5-страницы и использует новый & quot; обязательный & quot; приписывать. Если у меня есть форма ввода данных с обязательным полем, и я отправляю эту форму с пустым полем, я хотел бы убедиться, что веб-приложение правильно отвечает с ошибкой.

К сожалению, при тестировании с использованием веб-браузера HTML5 сообщение об ошибке, которое появляется при неудачной проверке поля, кажется, недоступно для Cucumber через веб-драйвер. В любом случае форма не отправляется, а страница остается в форме ввода данных.

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

Во втором случае я могу легко проверить наличие сообщения об ошибке, поскольку оно является частью HTML-кода, доставляемого на странице. Моя проблема в том, что я не вижу, как написать один тестовый сценарий, который будет проверять состояние ошибки как для ситуаций без браузера, так и для браузера HTML5.

Возможно, это невозможно при текущем состоянии веб-драйверов Selenium и Watir. Но если у кого-то есть идеи, как я могу проверить HTML5 "требуемый" всплывающее сообщение об ошибке, это было бы большой помощью.

EDIT 2012-06-02:

Вотобразец страницы с выборкой предупреждений браузера HTML5.

Есть обязательный текст и выберите, текстовое поле, показывающее внутренний текст подсказки, и текстовое поле с проверкой ввода регулярного выражения. Страница не имеет CSS или javascript, чтобы запутать проблему, это просто ванильный HTML5. УвидетьСтраница w3schools об атрибутах полей HTML5 для полного срыва. Форма отправляется в простой CGI-скрипт, который просто повторяет ввод формы, предполагая, что форма выполнена успешно. Ошибка отправки останется на странице примера формы.

Ответы на вопрос(2)

Ваш ответ на вопрос