私はCucumberでWebアプリケーションの動作をテストしています(SeleniumとWatirを使用しています)。私のWebアプリケーションにはHTML5ページがあり、新しい「必須」属性を使用します。必要なフィールドを持つデータ入力フォームがあり、フィールドを空白にしてフォームを送信すると、Webアプリケーションがエラー状態で正しく応答することを確認したいと思います。キュウリのHTML5ページのエラー状態をテストするにはどうすればよいですか?
残念ながら、HTML5 Webブラウザを使用してテストする場合、失敗したフィールド検証でポップアップするエラーメッセージは、Webドライバを通じてCucumberにアクセスできないように見えます。いずれの場合も、フォームは提出されず、ページはデータ入力フォームに残ります。
一方、ヘッドレスまたは非HTML5準拠のブラウザでテストする場合、フォームが送信され、Webアプリケーションでエラーがトラップされ、ユーザーがエラーメッセージとともにフォームページに戻ります。
2番目のケースでは、エラーメッセージがページに配信されるHTMLの一部であるため、エラーメッセージの存在を簡単にテストできます。私の問題は、ヘッドレスブラウザとHTML5ブラウザの両方のエラー状況を検証する単一のテストシナリオを作成する方法がわかりません。
これは、SeleniumとWatir Webドライバの現在の状態では不可能なことがあります。しかし、HTML5の「必須」エラーポップアップメッセージをどのように確認できるか分かっている人は、大きな助けとなります。
EDIT 2012-06-02:ここではHTML5ブラウザーの警告のサンプリングと、このようなとサンプルのページです: http://railsdotnext.com/stackoverflow/required.html
内部ヒントテキストを示すテキストボックスは、そこに必要なテキストであると選択し、正規表現の入力検証を行うテキストボックス。このページには、問題を混乱させるようなCSSやJavaScriptはありません。バニラのHTML5です。完全な内訳については、w3schools page about HTML5 field attributesを参照してください。フォームはフォームが成功したと仮定してフォーム入力をエコーする単純なcgiスクリプトに送信されます。提出の失敗はサンプルフォームページに残ります。
私たちが見ることができる '必須'属性を使用するオンラインの例はありますか? – Cheezy
私は小さなものを作りました。それは網羅的ではありませんが、周りを遊ぶのに十分なものでなければなりません。上記の元の投稿への編集を参照してください。 –
HTML5エラーをテストすることは問題ではありません。これは、ブラウザが設計どおりに動作するかどうかをテストすることです。問題は、HTMLがHTML5フォームで記述されている場合にサーバーの検証をテストすることです。私はテスト環境で異なるHTMLコードを望んでいません。 SeleniumやWatir:Webdriverがjavascriptと同じようにHTML5レスポンスを有効/無効にできるのがベストです。 –