順序識別子
関連:GUI テストおよびコンポーネント
順序識別子は,複数の同じオブジェクトの中から特定のオブジェクトを一意に識別するために使用します。
概要
[オブジェクトの認識]ダイアログ・ボックスで指定した必須プロパティと補足プロパティを学習するのに加え,各テスト・オブジェクトのバックアップ順序識別子も学習できます。[順序識別子]は,同じ記述を持つオブジェクト(必須および補足プロパティ・リストで指定されているすべてのプロパティの値が同じオブジェクト)を区別するために,ほかのオブジェクトとの相対的な順番を表す数値を割り当てます。この順位の値は,必須および補足プロパティでは一意の記述を作成するのに不十分な場合に,使用できます。
割り当てられた順序プロパティ値は相対的な値であり,オブジェクトが学習されたときに表示されている他のオブジェクトとの関連でのみ正確です。そのため,アプリケーション・ページまたは画面のレイアウトや構成が変わると,オブジェクト自体には少しも変化がなくても,その値が変わってしまう可能性があります。そのため,すべての利用可能な必須および補足プロパティを使っても一意の記述が作成できない場合にだけ,このバックアップ順序識別子の値が学習されます。
さらに,順序識別子が学習された場合でも,実行セッション中にその識別子が使用されるのは,次の場合のみです。
-
学習された記述およびスマート認識メカニズムが十分ではなく,アプリケーションのオブジェクトを識別できない場合。
-
テスト・オブジェクトに対してビジュアル関係識別子が定義されていない場合。詳細については,"ビジュアル関係識別子" を参照を参照してください。
インデックスの識別子
オブジェクトを学習する際に,テスト・オブジェクトの Index プロパティに値を割り当てることで,オブジェクトを一意に識別することができます。この値は,ソース・コード内のオブジェクトの順番に基づいています。最初の番号は 0 です。
Index プロパティの値は,各オブジェクトに固有の値です。したがって,WebEdit テスト・オブジェクトを記述するために Index:=3 を使用すると,ページ上で 4 番目の WebEdit オブジェクトが検索されます。一方,WebElement オブジェクトを記述するのに Index:=3 を使用すると,WebElement オブジェクトはすべての Web オブジェクトに該当するため,タイプに関係なくページ内の 4 番目の Web オブジェクトが検索されます。
たとえば,次のオブジェクトを含んだ次のページがあるとします。
-
Apple という名前の画像
-
UserName という名前の画像
-
UserName という名前の WebEdit オブジェクト
-
Password という名前の画像
-
Password という名前の WebEdit オブジェクト
次のステートメントは,リストの 3 番目の項目を参照します。その項目が,ページ内で UserName という名前を持つ最初の WebEdit オブジェクトだからです。
WebEdit("Name:=UserName", "Index:=0")
一方,次のステートメントは,リストの 2 番目の項目を参照します。その項目が,UserName という名前を持つ最初の任意のタイプ(WebElement)のオブジェクトだからです。
WebElement("Name:=UserName", "Index:=0")
場所の識別子
オブジェクトを学習する際に,テスト・オブジェクトの Location プロパティに値を割り当てることで,オブジェクトを一意に識別することができます。この値は,ウィンドウ,フレーム,ダイアログ・ボックス内に現れる同じプロパティを持つほかのオブジェクトとの相対的な順番に基づいて決まります。最初のオブジェクトの場合,値は 0 です。値はカラム内で上から下に,そして左から右への順序で割り当てられます。
次の例では,ダイアログ・ボックス内のラジオ・ボタンは,Location プロパティに従って番号が付けられています。
Location プロパティの値は,各オブジェクトに固有の値です。したがって,ある WinButton テスト・オブジェクトを記述するのに Location:=3 を使用すると,ページ内の 4 番目の WinButton オブジェクトが上から下,左から右に検索されます。一方,WinObject オブジェクトを記述するのに Location:=3 を使用すると,WinObject オブジェクトはすべての標準オブジェクトに該当するので,タイプに関係なくページ内の 4 番目の標準オブジェクトが上から下,左から右に検索されます。
作成時刻の識別子
ブラウザ・オブジェクトの学習中に,値が CreationTime に割り当てられます。この値は,開いているほかのブラウザに対して,そのブラウザが開かれた相対的な順番を示します。最初に開かれたブラウザは,CreationTime = 0 という値を受け取ります。
実行セッション中に,ブラウザ・オブジェクトをテスト・オブジェクトの記述のみに基づいて識別できない場合,ブラウザが開かれた順序が調べられ,CreationTime プロパティを使用して正しいオブジェクトが識別されます。
たとえば,9:01 pm,9:03 pm,9:05 pm に開かれた 3 つのブラウザが学習された場合,次の CreationTime 値が割り当てられます。CreationTime = 0 が 9:01 am のブラウザ,CreationTime = 1 が 9:03 am のブラウザ,CreationTime = 2 が 9:06 am のブラウザ。
10:30 pm にこれらのブラウザ・オブジェクトに関するテストまたはコンポーネントを実行するとし,ブラウザが 10:31 pm,10:33 pm,10:34 pm に開くとします。ブラウザは次のように識別されます。10:31 pm のブラウザは CreationTime = 0 の Browser テスト・オブジェクト,10:33 pm のブラウザは CreationTime = 1 のテスト・オブジェクト,10:34 pm のブラウザは CreationTime = 2 のテスト・オブジェクトでそれぞれ識別されます。
特定の CreationTime 値のブラウザ・オブジェクトを対象にステップが作成されても,実行セッションでこの CreationTime 値のブラウザが開いていないと,そのステップは CreationTime 値の最も高いブラウザで実行されます。たとえば,ステップが CreationTime = 6 のブラウザ・オブジェクトを対象に作成されても,実行セッションで CreationTime = 0 と CreationTime = 1 の 2 つのブラウザしか開いていないと,そのステップは最後に開いたブラウザで実行されます。この例では,CreationTime = 1 のブラウザになります。
セッション中の特定の時間に使用できる CreationTime 値は連番になっていない可能性があります。たとえば,記録または実行セッション中に 6 つのブラウザを開いたとして,セッション中にそのうち 2 番目と 4 番目のブラウザ(CreationTime 値 1 と 3)を閉じたとすると,セッションの最後で開いているブラウザは CreationTime 値が 0,2,4,5 のブラウザになります。

