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

14

Я тестирую поведение веб-приложений с помощью 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-скрипт, который просто повторяет ввод формы, предполагая, что форма выполнена успешно. Ошибка отправки останется на странице примера формы.

Просто чтобы вы знали, я бы не стал доверять W3Schoolsw3fools.com MrJD
Чем больше я думаю об этом, тем не менее, тестирование ошибки HTML5 не является проблемой - это будет проверять, работает ли браузер так, как задумано. Проблема заключается в тестировании проверки сервера, когда HTML написан с использованием HTML5-форм. Я не хочу другого HTML-кода в тестовой среде. Было бы лучше, если бы Selenium и / или Watir: Webdriver могли включать / отключать ответы HTML5 так же, как и JavaScript. Aaron Brown
Есть ли онлайн-пример, который использует «обязательный»? атрибут, который мы можем посмотреть? Cheezy
Я создал маленький. Это не является исчерпывающим, но должно предоставить достаточно для игры. См. РЕДАКТИРОВАТЬ к оригинальному сообщению выше. Aaron Brown

Ваш Ответ

2   ответа
0

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

Используя watir или watir-webdriver, вы можете использовать .type для проверки того, что вход имеет правильный набор типов (например, адрес электронной почты), и это одна вещь, которая управляет проверкой браузера. Другое - наличие обязательного атрибута, который немного обманывает. Потенциально .attribute_value (& quot; required & quot;) может работать, но обычно возвращает значение атрибута, поэтому не уверен, как этот метод будет реагировать на логический атрибут. Другими альтернативами могут быть просмотр .attribute_list и

Похоже, у Ватира есть веская причина для добавления .required? метод для ввода элементов, которые позволят вам легко проверить, был ли установлен этот атрибут. Поэтому я попросил эту функциюhttps://github.com/watir/watir-webdriver/issues/189

В соответствии сWebdriver spec возвращается логический атрибутtrue если это значение истинно иnil если это значение равно false
0

required атрибут до. Но, судя по всему, этоrequired Атрибут просто предупреждает браузер, что это поле формы должно быть заполнено (то есть DOM не изменяется).

Мне кажется, что было бы разумно просто утверждать, что этоrequired Атрибут присутствует в HTML соответствующих полей формы. Этот тест должен пройти для ОБА HTML5 браузеров и не HTML5 браузеров.

Мне кажется, что вы пытаетесь утверждать что-то большее, чем это, вы проверяете функциональность браузера.

единственное, что я могу сделать, когда мне нужно проверить такой элемент, как: p $ browser.element (: css = & gt; "input: required"). существует? если у кого-то есть что-то лучше или как мы можем получить текст всплывающего окна html5

Похожие вопросы