始める前に、「演習 1.9: 認識設定の変更」を完了してください。
オブジェクト・マップを使用した最後の作業は、プロパティー値を正規表現に変換することです。 この場合、正規表現の使用によって、オブジェクトの認識をより柔軟に行うことができます。
前の演習では、ClassicsB に対してスクリプトを完全に合格させる方法を見ました。 ClassicsB のアプリケーションに加えた変更は正しいので、その変更に合わせてスクリプトを更新したわけです。 したがって、作業を進めるという意味では、スクリプトは現時点であるべき状態になっていると言えます。 しかし、ClassicsA に対してスクリプトを再生すると、加えた変更のためにスクリプトは失敗します。 そこで、オブジェクトのバリアントを複数用意して、そのすべてを合格させることができれば便利です。 そのために使用できるのが動的オブジェクトです。つまり、1 つのオブジェクトに関して、少しずつ異なるバージョンを複数用意して、アプリケーションの正しいバージョンをいくつか作成するという手法です。 そのために、正規表現を使用して、テキストなどのプロパティーに複数の値を用意できます。
再生中、機能テストはパスワード・チェック・ボックス・オブジェクトで一時的に休止しますが、最後には終了します。
スクリプトから警告が表示されます。 ログの中で、先ほどと同じオブジェクト、つまりパスワード・チェック・ボックスに関して警告が表示されていることを確認します。
統合されたオブジェクトが「統合されたテスト・オブジェクトのプロパティー」グリッド (上部のペイン) に表示されます。「name」プロパティーの値は「checkRemember」です。
機能テストは、値テキストの前にある「xy」アイコンにより、値が正規表現であることを示します。
[rR]emember
このパターンを使用すると、「remember」の先頭が大文字「R」の場合も小文字「r」の場合も合格になります。 比較操作では、大文字小文字が区別され、完全に一致したものだけが合格になるので、この点は重要です。
「accessibleName」プロパティーの値は、「Remember Password」です。
Remember.*Password
つまり、スペースを除去し、ピリオド (.) とアスタリスク (*) 文字を追加します。
「.」を使用すると、その位置にどの文字が入ってもよいことになります。 アプリケーションの 1 つのバージョンでは、このプロパティーの 2 つのワード間にスペースがあり、もう 1 つのバージョンではスペースがありません。 このパターンによって、その両方のケースをカバーします。
では、実際に試してみましょう。
ClassicsA のオブジェクト認識の警告がログに表示されません。
ClassicsB でもオブジェクト認識が合格になります。 正規表現を使用すれば、1 つのアプリケーションのさまざまなバージョンで、さまざまなプロパティーを持つ 1 つのオブジェクトに関して、再生時のオブジェクト認識をより柔軟に実現できます。正規表現の詳細については、機能テストのヘルプを参照してください。
「要約」に挙げられている資料を確認して、チュートリアルを終了します。