始める前に、「演習 1.7: コンパレーターを使用した検査ポイントの更新」を完了してください。
この演習では、オブジェクト・マップを使用して、オブジェクト認識の警告を修正します。 また、より柔軟なオブジェクト認識のために正規表現を使用します。
認識に関する障害または警告が表示される場合は、ログ・メッセージを調べてください。 演習 1.7 の終了時に、ログを表示したままにしておいたはずです。 ログが開いていない場合は、「プロジェクト」ビューでダブルクリックして開いてください。 ログには 1 つの警告が残っています。 イベント見出しは、「Object Recognition is weak (above the warning threshold)」です。ClassicsA では、パスワード・フィールドの名前が「Remember Password」になっています。 ClassicsB では、 「Remember The Password」になっています。 ClassicsB に対してスクリプトを再生すると、この差のためにオブジェクト認識が正確に一致しません。
カーソルがその行番号の左マージンまで移動します。
RememberPassword().clickToState(SELECTED);
この行は、パスワード・チェック・ボックスでのクリックを表しています。スクリプトのその行は、どのオブジェクトで障害が起きているかを示しています。 これを見れば、オブジェクト・マップで該当するオブジェクトを検出できます。
「テスト・オブジェクト」フォルダーの下に「rememberPassword」がリストされているはずです。
すべてのオブジェクトが黒いテキストでの表示に変更されていることを確認します。 マップでオブジェクトを受け入れるまでは、テキストは青色で表示されます (青色は新規オブジェクトを表わします)。 新規作成のオブジェクト・マップを最初に見たときに、すべてのオブジェクトを受け入れる必要があります。
新しいオブジェクトをマップに追加するために、ClassicsB と「 Member Logon」ダイアログ・ボックスを開きます。これは、ClassicsA からのオブジェクトであることが分かります。「accessibleContext.accessibleName」 プロパティーが「Remember Password」になっているためです。 これは、「古い」オブジェクトです。 それでも、ClassicsB に対してスクリプトを再生すると、そのオブジェクトのテキストが変更されているので、機能テストはこれを「新しい」オブジェクトとして認識します。 ここでは、新しいオブジェクトのプロパティーを使用したいので、それをマップに追加する必要があります。
「Member Logon」ダイアログ・ボックスが開きます。
これは、検査ポイント・ウィザードの「オブジェクトの選択」ページにある「オブジェクト・ファインダー」ツールと同じです。
そのチェック・ボックスを選択すると、「accessibleContext.accessibleName」プロパティーが「Remember the Password」になります。そのプロパティーを表示するために、必要に応じてオブジェクト・マップの枠を拡大してください。
これで、オブジェクト・マップに新規のチェック・ボックス・オブジェクトが表示されます。
この時点で、新旧両方のオブジェクトがマップにリストされています。 2 つのオブジェクトを統合し、新しいオブジェクトに含めるプロパティーをそれぞれのオブジェクトから取り込みましょう。
「テスト・オブジェクトの統合」ウィザードが表示されます。
左下のセクションに、元のオブジェクトのプロパティーが表示されます。 これは、「Source: RememberPassword」という名前になっているはずです。 つまりこれは、ClassicsA のチェック・ボックスにあるテキストです。 右下のセクションでは、「Target: RememberThePassword」という名前になっているはずです。 つまりこれは、ClassicsB のチェック・ボックスにあるテキストです。
古いオブジェクトを新しいオブジェクトにドラッグするので、新しいオブジェクトの認識プロパティーがウィザードの先頭に表示されます。 機能テストは基本的に、新しいプロパティーが優先プロパティーである場合、新しいプロパティーを先頭に書き込みます。 しかし、古い管理プロパティーが優先される場合もあります。 たとえば、機能テストは、古いプロパティー・セット内の正規表現をそのまま保持します。 古いオブジェクトのプロパティーを使用するには、古いオブジェクトのグリッドでそのプロパティーをダブルクリックします。すると、そのプロパティーが統合オブジェクトにコピーされます。 ここでは、新しいオブジェクトのすべてのプロパティーを使用します (すでにすべてが表示されています)。
オブジェクト・マップ内でこの変更の影響を受けるすべてのスクリプトがリストされます。 ここで影響を受けるのは、1 つのスクリプト (Classics) だけです。
今回は、警告は表示されずに、スクリプトは合格になります。 認識プロパティーが一致するようになったので、再生がパスワード・チェック・ボックス・オブジェクトで休止しないことを確認してください。
このオブジェクト統合機能は、オブジェクトの認識プロパティーを故意に変更した場合に、スクリプトを更新する簡単な方法です。 この機能の大きな利点の 1 つは、オブジェクト・マップが多くのスクリプトに使用されている場合でも、ウィザードで変更を行って、すべてを更新できるということです。 複数のスクリプトを手動で編集する代わりに、マップで一度変更を行うだけで、マップを使用するすべてのスクリプトにその変更が自動的に反映されます。 この機能を使用すれば、時間を節約できます。
注: テスト・オブジェクトの認識プロパティーを変更した場合にスクリプトを更新するためのさらに簡単な方法もあります。 この演習で取り上げた統合ウィザードを使用する代わりに、認識プロパティーを更新したいテスト・オブジェクトをオブジェクト・マップでまず選択します。 「オブジェクト・マップ」ツリーに表示されているテスト・オブジェクトを右クリックし、ポップアップ・メニューから「認識プロパティーの更新」を選択します。 このアクションを実行するときに、テスト・アプリケーションを稼動中にしておく必要があります。そのようにしておけば、機能テストが更新後の認識プロパティーを取得できるからです。 古いオブジェクトのプロパティーを使用したくない場合は、この更新方式だけで十分です。
次に、「演習 1.9: 認識設定の変更」に進んでください。