2016-08-27 14 views

答えて

7

あなたがPageFactoryを使用する場合は、webelementsインスタンスは、実際のプロキシであり、要素はあなたがそれらのメソッドを呼び出す前に発見する必要があります。

各フィールドの取得部分はElementLocatorにカプセル化されています。 ElementLocatorFactoryは、各要素に対してこれらを提供します。このファクトリは、ファクトリコンストラクタに提供されるSearchContextを必要とします。ドライバはSearchContext(メソッドfindelement)またはweb要素を実装します。それらを探す方法であるBy部分は、ページオブジェクトのフィールドの反映APIによって検索されます。

プロキシをフィールドに割り当てることはFieldDecoratorによって処理され、ElementLocatorFactoryが必要です。各webelementフィールドに対して呼び出されるdecorate()メソッドは、そのフィールドに設定されているプロキシを返します。メソッドがweb要素で呼び出されると、実際にはそのメソッドが呼び出されます。プロキシがこの呼び出しを傍受してSearchContext.findElementメソッドを使用して実際の要素を見つけ、元のメソッドを呼び出します。

ElementLocatorFactoryFieldDecoratorを作成してPageFactoryに渡すことができます。

コードレベルの説明については、http://www.alechenninger.com/2014/07/a-case-study-of-javas-dynamic-proxies_14.htmlを参照してください。

+0

素晴らしい。ありがとうございました! – shank087

関連する問題