動的なプログラム的記述

関連:GUI アクション、スクリプト GUI コンポーネント、関数ライブラリ

Description オブジェクトを使用して、Property オブジェクトのセットを格納した Properties コレクションを返すことができます。Property オブジェクトは、プロパティ名とプロパティ値で構成されます。返された Properties コレクションを、ステートメントのオブジェクト名に指定できます(各 Property オブジェクトには、プロパティ名と値のペアが格納されています)。

Properties コレクションの作成

Properties コレクションを作成するには、次の構文を使って Description.Create ステートメントを入力します。

Set MyDescription = Description.Create()

Properties オブジェクト(たとえば上の例の MyDescription)を作成すれば、実行セッション中に Properties オブジェクトのプロパティと値の追加、編集、削除、取得を行うステートメントを入力できます。これにより、オブジェクト記述にどのプロパティをいくつ含めるかを、実行セッション中に動的に決めることができます。

Properties コレクションに Property オブジェクト(プロパティと値)のセットを設定したら、ステートメントの中で、この Properties オブジェクトをオブジェクト名の代わりに指定できます。

たとえは、次のように入力する代わりに、

Window("Error").WinButton("text:=OK", "width:=50").Click

次のように入力できます。

Set MyDescription = Description.Create()
MyDescription("text").Value = "OK"
MyDescription("width").Value = 50
Window("Error").WinButton(MyDescription).Click

Properties オブジェクトを使っているときには、プロパティや値の代わりに変数名を使うことで、実行セッション中に取得したプロパティや値に基づくオブジェクト記述を生成できます。

複数のオブジェクトでプログラム的記述を使いたい場合には、複数の Properties オブジェクトを作成することもできます。

Description および Properties オブジェクト、および関連するメソッドの詳細については、『UFT One Object Model Reference for GUI Testing』 の「Utility Objects」の項を参照してください。

先頭に戻る

正規表現とプログラム的記述

標準設定では、Properties コレクションに追加された Property オブジェクトの値はすべて正規表現として処理されます。したがって、正規表現において特別な意味を持つ文字(*?+ など)を含んだ値を入力するには、\(バックスラッシュ)を使用して、その特殊文字をリテラルな文字として扱うように指示します。正規表現の詳細については、「正規表現」を参照してください。

コレクション内の特定の Property オブジェクトの値をリテラル値として指定するには、RegularExpressionプロパティを False に設定します。詳細については、『UFT One Object Model Reference for GUI Testing』の「Utility Objects」の項を参照してください。

先頭に戻る

プログラム的記述とオブジェクト階層構造

テスト・オブジェクト階層構造の特定のポイントからプログラム的記述を使用する場合には、同じステートメント内では、そのポイント以降は必ずプログラム的記述を使用する必要があります。プログラム的記述を使用して階層内のオブジェクトを記述した後に、オブジェクト・リポジトリでの名前を使用してテスト・オブジェクトを指定すると、当該オブジェクトは UFT One によって識別されません。

たとえば、Browser(Desc1).Page(Desc1).Link(desc3) ではテスト・オブジェクト階層構造全体を通してプログラム的記述を使用しているので、このステートメントは使用できます。

Browser("Index").Page(Desc1).Link(desc3) も、特定のポイントから(Page オブジェクト記述以降)プログラム的記述を使用しているので、このステートメントは使用できます。

しかし、Browser(Desc1).Page(Desc1).Link("Example1") の場合、Browser および Page オブジェクトにプログラム的記述を使用する一方で、Link テスト・オブジェクトにオブジェクト・リポジトリでの名前を使用しているので、このステートメントは使用できません(UFT One によって、オブジェクト名に基づいて Link オブジェクトが検索されますが、プログラム的記述を使用して親オブジェクトを指定しているため、リポジトリの中でオブジェクトが見つかりません)。

先頭に戻る