静的なプログラム的記述

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

テスト・ステートメントにオブジェクトを直接記述するには,オブジェクトの名前ではなく,プロパティとプロパティの値を指定します。

一般的な構文

プロパティ名と値のペアを指定して,ステートメント内でオブジェクトを直接記述します。プロパティ名と値のペアはカンマで区切り,各ペアを二重引用符で囲む必要があります。

オブジェクトの記述にプロパティとプロパティ値を指定するには,次の構文を使用します。

TestObject("PropertyName1:=PropertyValue1", "...", "PropertyNameX==PropertyValueX")
TestObject テスト・オブジェクト・クラス。
PropertyName:=PropertyValue

記述プロパティ名とその値。

この形式でプロパティを定義すると,UFT One はプロパティ値を正規表現として扱います。

特殊な正規表現文字(*?+など)をリテラル文字として含めるには,特殊文字の前に \(バックスラッシュ)文字を追加します。

PropertyName==PropertyValue

記述プロパティ名とその値。

この形式でプロパティを定義すると,UFT One はプロパティ値をリテラル文字列として扱います。

Example: SAPUI5 アプリケーションで次のテーブルをテストするとします。テーブル・オブジェクト名が 2 つのバージョンで異なっています。

バージョン 1.71 では,テーブル・オブジェクト名は Products です。しかし,バージョン 1.96 では,テーブル・オブジェクト名が __table0 です。

作成しようとしているのは,この 2 つのバージョンのアプリケーションで実行され,次の動作を実行するスクリプトです。

Notebook Basic 15 に新しい製品 ID を設定し,すべての行を選択する。

この場合,プログラム的記述の構文を使用して,default valueHT-1000 である WebEdit オブジェクトに対して Set メソッドを実行し,名前が文字列 Productsまたは文字列 __table0 に一致する SAPUITableSelectAll メソッドを実行するように UFT One に指示できます。

Copy code
Browser("Samples - Demo Kit - SAPUI5").Page("Samples - Demo Kit - SAPUI5").WebEdit("default value==HT-1000").Set "abc"
wait 2
Browser("Samples - Demo Kit - SAPUI5").Page("Samples - Demo Kit - SAPUI5").SAPUITable("name:=(Products)|(__table0)").SelectAll

UftIsRegex プロパティ

テスト・オブジェクトの記述を作成する際に,オブジェクトの指定されたすべてのプロパティ値をリテラル文字列として扱うように UFT One に指示できます。PropertyName:=PropertyValue ペアを使用してオブジェクトの記述を作成します。次に,UftIsRegex プロパティを追加し,その値を False に設定します。

たとえば,次のステートメントを実行すると,UFT One は名前がusernameで,タイプが text である WebEdit オブジェクトを検索し,このオブジェクトに「tutorial」と入力します。

Copy code
Browser("Advantage Shopping").Page("Advantage Shopping").WebEdit("name:=^username""type:=text", "UftIsRegex:=false").Set "tutorial"

UftIsRegex プロパティは,オブジェクトの記述のすべてのプロパティ値に適用されます。

PropertyName:=PropertyValuePropertyName==PropertyValue のペアを使用すると,より柔軟で正確な記述を作成できます。

先頭に戻る

変数

実行セッション中に取得するプロパティ値に基づいてオブジェクトを検索する場合には,プロパティ値として変数名を入力できます。次に例を示します。

MyVar="some text string" 

Browser("Hello").Page("Hello").Webtable("table").Webedit("name:=" & MyVar)

先頭に戻る

親テスト・オブジェクトの検索

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

たとえば,次のように使用してください

  • 親オブジェクトに対してはオブジェクト・リポジトリ名を使用して,操作の実行対象となるオブジェクトに対してはプログラム的記述を使用します。

    Browser("Advantage Shopping").Page("Advantage Shopping").WebEdit("name:=username", "type:=text").Set "tutorial"
  • テスト・オブジェクト階層全体を通してプログラム的記述を使用します。

    Browser("Title:=Advantage Shopping").Page("Title:=Advantage Shopping").WebEdit("name:=username", "type:=text").Set "tutorial"
  • 記述内の特定のポイントから(Page オブジェクト記述以降)プログラム的記述を使用します。

    Browser("Advantage Shopping").Page("Title:=Advantage Shopping").WebEdit("name:=username", "type:=text").Set "tutorial"

悪い例:Browser および Page オブジェクトについてはプログラム的記述を使用していますが,WebEdit テスト・オブジェクトについてはオブジェクト・リポジトリでの名前の使用を試みています。

Browser("Title:=Advantage Shopping").Page("Title:=Advantage Shopping").WebEdit("username").Set "tutorial"

先頭に戻る

Insight テスト・オブジェクトの記述

Insight テスト・オブジェクトを記述するには,コントロールの画像へのファイル・システム・パスまたは ALM パスを提供する PropertyValue を使用して,ImgSrc プロパティを指定します(ALM テスト・リソース・モジュールまたは ALM テスト計画モジュール内にあるファイルへの ALM パスを指定するには,「[ALM\Resources] Resources\<フォルダとファイル名>」または「[ALM]Subject\<フォルダとファイル名>」と入力します)。

次のステートメントは,電卓ウィンドウ内の InsightObject テスト・オブジェクトを指定しています。画像は C:\AllMyFiles\Button6.bmp ファイルにあります。このファイルには,[6]ボタンの画像が含まれています。実行セッション中,UFT One は,この画像のような電卓の領域を検索し,その中央をクリックします。

Window("Calculator").InsightObject("ImgSrc:=C:\AllMyFiles\Button6.bmp").Click

Insight テスト・オブジェクトに対してプログラム的記述を使用する場合,次のことを考慮してください。

  • 記述には,ImgSrc プロパティ(必須)と順序識別子プロパティ(オプション)のみを含めることができます。

  • 記述には,正規表現を含めることはできません。

  • コントロールの画像を含むファイル(ImgSrc プロパティで指定)の条件:

    • 24 または 32 ビット/ピクセルをサポートする圧縮されていない画像ファイル(JPEG,BMP,PNG)。

    • テストまたはコンポーネントを実行する任意のコンピュータからアクセス可能である必要があります。

  • プログラム的記述を使用して定義された Insight テスト・オブジェクトで Click メソッドを実行すると,UFT One は,指定した画像に一致するコントロールの中央をクリックします。

先頭に戻る