例えば、HTML アプリケーションで、ブラウザーの複数のインスタンスがアクティブになっている場合、2 つのブラウザーが以下の例のように記録されていると、ツールバー・アクションで 1 つのブラウザーをもう一方のブラウザーから認識するのは不可能です。
BrowserToolbar_Back().click() BrowserToolbar_Forward().click()
このような場合、Functional Tester は現在ロードされている文書 (ターゲット・オブジェクトのアンカーという) により識別されるブラウザーでツールバー・ボタンを見つけることによって、あいまい認識を回避します。例:
BrowserToolbar_Back(Browser_htmlBrowser(Document_MyHomePage(), DEFAULT), DEFAULT).click();
ツールバーの「戻る」ボタンは、ブラウザーによって固定され、そのブラウザーは文書「My HomePage」により固定されます。 ブラウザーの各インスタンスに同じロード済み文書がある場合、この例は当然うまくいきません。アンカーを引数として使用するヘルパー・スクリプト・メソッドでも、コンポーネントの状態を指定する別の引数 (上記の例では DEFAULT 引数) が必要であることに注意してください。HTML オブジェクトのデフォルトの状態は LOADED です。 HTML コンポーネントの場合、LOADING および UNINITIATED も可能です。 Java™ オブジェクトのデフォルトの状態は SHOWING および ENABLED です。 Java オブジェクトで他にサポートされる状態フラグには、NOT_SHOWING および DISABLED があります。
さらに、その TestObject 参照を使用してブラウザー・インスタンスを識別し、以下のようにブラウザー上で検索メソッドを呼び出すことができます (完了時に必ず TestObject の登録を解除してください)。
TestObject browserOne = Browser_htmlBrowser(Document_MyHomePage(), DEFAULT).find();
テスト・スクリプトでのブラウザー・ツールバー・コマンドは以下の例のようになります。
BrowserToolbar_Back(myBrowser, DEFAULT).click();
あいまい認識が問題になり得る他の状況としては、テストに、同時に実行する複数のアプリケーションがある場合です。再生中、b5().click() のようなコマンドはあいまいです。startApp コマンドは ProcessTestObject を戻すので、この参照を使用して、特定のコマンドが適用されるアプリケーションを指定できます。例:
ProcessTestObject p1 = startApp("SwingTest"); ProcessTestObject p2 = startApp("TryIt"); ... //b5().click(); ambiguous on playback; which application? b5(p1, DEFAULT).click();
この例の最後の行で、ProcessTestObject は望みのアプリケーションを検索するアンカーとして機能します。なお、ProcessTestObject に対して unregister メソッドを呼び出す必要はありません。