Jak przetestować warunki błędu na stronach HTML5 za pomocą ogórka?

Testuję zachowanie aplikacji internetowych z Cucumber (używając Selenium i Watir pod maską). Moja aplikacja internetowa ma strony HTML5 i korzysta z nowego atrybutu „wymagany”. Jeśli mam formularz wprowadzania danych z wymaganym polem i przesyłam ten formularz z pustym polem, chciałbym sprawdzić, czy aplikacja internetowa poprawnie odpowiada błędem.

Niestety, podczas testowania za pomocą przeglądarki internetowej HTML5 komunikat o błędzie pojawiający się przy nieudanej walidacji pola nie wydaje się być dostępny dla Cucumber za pośrednictwem sterownika sieciowego. W każdym przypadku formularz nie jest przesyłany, a strona pozostaje w formularzu wprowadzania danych.

Z drugiej strony, podczas testowania bezgłowego lub za pomocą przeglądarki innej niż HTML5, formularz może przesłać, umożliwiając mojej aplikacji internetowej złapanie błędu i wysłanie użytkownika z powrotem do strony formularza z komunikatem o błędzie.

W drugim przypadku mogę łatwo sprawdzić, czy istnieje komunikat o błędzie, ponieważ jest to część kodu HTML dostarczonego na stronie. Moim problemem jest to, że nie widzę, jak napisać pojedynczy scenariusz testowy, który zweryfikuje warunek błędu dla sytuacji przeglądarki bezgłowej i HTML5.

Być może jest to niemożliwe przy obecnym stanie sterowników internetowych Selenium i Watir. Ale jeśli ktoś ma jakieś pojęcie o tym, jak mogę zweryfikować komunikat „wymagany” błąd HTML5, byłoby to dużą pomocą.

EDYTUJ 2012-06-02:

Tutaj jestPrzykładowa Strona z próbkowaniem ostrzeżeń przeglądarki HTML5.

Jest wymagany tekst i zaznaczenie, pole tekstowe z wewnętrznym tekstem podpowiedzi oraz pole tekstowe z sprawdzaniem poprawności wprowadzonych wyrażeń regularnych. Strona nie ma kodu CSS ani javascript, aby zmylić problem, to po prostu waniliowy HTML5. Zobaczstrona w3schools o atrybutach pól HTML5 na kompletną awarię. Formularz jest przesyłany do prostego skryptu CGI, który po prostu odbija echo formularza, zakładając, że formularz się powiedzie. Błąd przesyłania pozostanie na stronie formularza przykładowego.

questionAnswers(2)

yourAnswerToTheQuestion