Я тестирую поведение веб-приложений с помощью огурца (используя Selenium и Watir под капотом). Мое веб-приложение имеет страницы HTML5 и использует новый «обязательный» атрибут. Если у меня есть форма ввода данных с обязательным полем, и я отправлю эту форму с пустым полем, я бы хотел убедиться, что веб-приложение правильно отвечает с условием ошибки.Как проверить условия ошибки на страницах HTML5 с огурцом?
К сожалению, при тестировании с использованием веб-браузера HTML5 сообщение об ошибке, которое появляется при неудачной проверке поля, похоже, не доступно для Огурца через веб-драйвер. В любом случае форма не отправляется, и страница остается в форме ввода данных.
С другой стороны, при тестировании без головы или с браузером, не поддерживающим HTML5, форма может быть отправлена, что позволяет моему веб-приложению уловить ошибку и отправить пользователя на страницу формы с сообщением об ошибке.
Во втором случае я могу легко проверить наличие сообщения об ошибке, поскольку это часть HTML-кода, поставляемого на странице. Моя проблема заключается в том, что я не вижу, как написать один тестовый сценарий, который будет проверять условие ошибки для браузеров как безглавых, так и для HTML5.
Возможно, это невозможно в текущем состоянии веб-драйверов Selenium и Watir. Но если кто-нибудь знает, как я могу проверить сообщение об ошибке «требуемое» сообщение HTML5, это будет большой помощью.
EDIT 2012-06-02: Вот пример страница с выборкой предупреждения браузера HTML5 и такой: http://railsdotnext.com/stackoverflow/required.html
Существует обязательный текст и выбрать, текстовое поле, показывая внутренний текст подсказки и текстовое поле с подтверждением ввода регулярного выражения. На странице нет CSS или javascript, чтобы запутать проблему, это просто ванильный HTML5. См. w3schools page about HTML5 field attributes для полной разбивки. Форма отправляется на простой скрипт cgi, который просто перекликается с формой ввода, при условии, что форма успешно завершена. Ошибка отправки останется на странице формы образца.
Есть ли онлайн-пример, в котором используется атрибут 'required', на который мы можем смотреть? – Cheezy
Я создал маленькую. Это не исчерпывающий, но должен обеспечить достаточно, чтобы поиграть. См. EDIT в оригинальном сообщении выше. –
Чем больше я думаю об этом, тестирование ошибки HTML5 не является проблемой - это будет проверка того, работает ли браузер так, как он был разработан. Проблема заключается в проверке проверки сервера, когда HTML написан с формами HTML5. Мне не нужен другой HTML-код в тестовой среде. Было бы лучше, если бы Selenium и/или Watir: Webdriver могли включать/отключать ответы HTML5 так же, как и javascript. –