HTTP レスポンスコード

Selenium RC の一部のブラウザ構成では、Selenium はブラウザと自動化対象のサイト間のプロキシとして機能していました。これは、すべてのブラウザトラフィックが Selenium を通過し、キャプチャまたは操作される可能性があることを意味していました。captureNetworkTraffic() メソッドは、HTTP レスポンスコードを含む、ブラウザと自動化対象のサイト間のすべてのネットワークトラフィックをキャプチャすることを目的としていました。

Selenium WebDriver は、ブラウザの自動化に対するまったく異なるアプローチであり、ユーザーのように動作することを好みます。これは、WebDriver でテストを作成する方法に表れています。自動化された機能テストでは、ステータスコードの確認はテストの失敗の特に重要な詳細ではありません。その前に実行された手順の方が重要です。

ブラウザは常に HTTP ステータスコードを表します。たとえば、404 または 500 エラーページを想像してください。これらのエラーページのいずれかに遭遇した場合に「すぐに失敗」する簡単な方法は、ページロードのたびにページタイトルまたは信頼できるポイント(例:<h1> タグ)の内容を確認することです。ページオブジェクトモデルを使用している場合は、ページロードが予想されるクラスコンストラクタまたは同様のポイントにこのチェックを含めることができます。場合によっては、HTTP コードがブラウザのエラーページに表示されることさえあり、WebDriver を使用してこれを読み取り、デバッグ出力を改善できます。

Web ページ自体をチェックすることは、WebDriver の理想的なプラクティスである、Web サイトのユーザーのビューを表現およびアサートすることに沿っています。

どうしても HTTP ステータスコードをキャプチャする必要がある場合は、プロキシを使用することで Selenium RC の動作を再現する高度なソリューションがあります。WebDriver API はブラウザのプロキシを設定する機能を提供しており、Web サーバーとの間で送受信されるリクエストの内容をプログラムで操作できるプロキシが多数あります。プロキシを使用すると、リダイレクトレスポンスコードにどのように応答するかを決定できます。さらに、すべてのブラウザがレスポンスコードを WebDriver で利用できるようにしているわけではないため、プロキシを使用することを選択すると、すべてのブラウザで動作するソリューションを実現できます。