
184
7 章 Page Object パターン
ページはステートレスになります。このため、アクションを実行しようとするたびに、現在の
@selenium
インスタンスを渡す必要があります。テストはアプリケーションフローを指示するもの
になり、
Page
クラスはテストから与えられた情報だけを使って、要求されたアクションを実行す
るものになります。
テストとページ、どちらを賢くすべきでしょうか。これはなかなか難しい質問です。おそらく最
適な解決策は、折衷案をとって、状況に応じて
Page Object
フレームワークのある部分を賢くし、
他の部分を意図的に間抜けにすることでしょう。
7.6.3
のりにモジュールを使う
最初にオブジェクトの継承について学んだとき、私はどこででも継承を使いたくなりました。開
発者が新しいスキルやプログラミングパターンを学んだとき、そういう気持ちになるのはよくある
ことです。ところが、継承階層を作るよりも、モジュール
/
ミックスインの方がすぐれた明確な
解決策になることがあります。私たちが作ったフレームワークでは、継承を使うことによって、さ
まざまなページがページ上のヘッダ、フッタなどのオブジェクトにアクセスできるようにしました。
私たちのウェブサイトのページの大部分がよく似た構成だったため、このやり方はうまくいきまし
た。
HomePage
クラスの場合、ホームページにボディがなかったため、
body
メソッドを上書きする
必要がありました。
新しい
Page
サブクラスを作るたびに、存在しないオブジェクトを上書きする必要があると ...