Cucumber で Web アプリケーションの動作をテストしています (ボンネットの下で Selenium と Watir を使用しています)。私の Web アプリには HTML5 ページがあり、新しい "required" 属性を利用しています。必須フィールドを含むデータ入力フォームがあり、フィールドを空白にしてそのフォームを送信した場合、Web アプリがエラー状態で正しく応答することを確認したいと思います。
残念ながら、HTML5 Web ブラウザーを使用してテストする場合、失敗したフィールド検証でポップアップするエラー メッセージは、Web ドライバーを介して Cucumber にアクセスできないようです。いずれの場合も、フォームは送信されず、ページはデータ入力フォームに残ります。
一方、ヘッドレスまたは HTML5 に準拠していないブラウザーでテストすると、フォームが送信され、Web アプリがエラーをトラップし、ユーザーをフォーム ページに戻してエラー メッセージを表示することができます。
2 番目のケースでは、エラー メッセージがページに配信される HTML の一部であるため、エラー メッセージの存在を簡単にテストできます。私の問題は、ヘッドレス ブラウザーと HTML5 ブラウザーの両方の状況でエラー状態を検証する単一のテスト シナリオを作成する方法がわからないことです。
Selenium および Watir Web ドライバーの現在の状態では、これは不可能である可能性があります。しかし、HTML5 の "required" エラー ポップアップ メッセージを確認する方法を知っている人がいれば、それは大きな助けになるでしょう。
編集 2012-06-02:
HTML5 ブラウザーの警告のサンプルを含むサンプル ページを次に示します。
必須のテキストと選択、内部ヒント テキストを表示するテキスト ボックス、および正規表現入力検証を含むテキスト ボックスがあります。このページには、問題を混乱させる CSS や JavaScript が含まれていません。これは単なる標準の HTML5 です。完全な内訳については、HTML5 フィールド属性に関する w3schools ページを参照してください。フォームは、フォーム入力をエコーする単純な CGI スクリプトに送信されます (フォームが成功した場合)。サンプルフォームページに送信失敗が残ります。