メインコンテンツまでスキップ

ScreenPart関数ハンドラの使用

テスト対象システム(SUT)の画面の次元に基づいてEggplant Functionalテスト自動化ツールでsearchRectangleグローバルプロパティや画像検索プロパティを設定することで、光学文字認識(OCR)の性能と精度を向上させたり、UI要素やテキスト要素がSUT画面の所望の部分に表示されることを確認したり、画面の同じ領域に一貫して表示される要素に対する繰り返しの画像やOCR検索の実行速度を向上させることができます。

SearchRectangleの定義

以下は、searchRectangleを全画面の一部に設定するために使用できる再利用可能なカスタム関数ハンドラの例です。このコードは、times数学演算子プロパティリストなど、多くの便利なSenseTalkの概念を活用しています。

例:

function ScreenPart Portion
// 指定された画面部分パラメータ値に必要な乗数を保存する、メンテナンスのしやすいプロパティリストを設定します。
set screenPortions to {
TopHalf: ((0,0),(1,.5)),
BottomHalf: ((0,.5),(1,1)),
LeftHalf: ((0,0),(.5,1)),
RightHalf: ((.5,0),(1,1)),
HorizontalMiddle: ((0,.25),(1,.75)),
VerticalMiddle:((.25,0),(.75,1)),
TopLeftQuadrant:((0,0),(.5,.5)),
TopRightQuadrant:((.5,0),(1,.5)),
BottomLeftQuadrant:((0,.5),(.5,1)),
BottomRightQuadrant:((.5,.5),(1,1)),
Center:((.25,.25),(.75,.75)),
}
}
set multiplier to screenPortions.(Portion) // プロパティリスト内のキーの値を取得します。キーの名前は、関数にパラメータとして渡されます。
// 関数に認識できないパラメータが渡された場合にはエラーハンドリングが必要です。
if multiplier is empty then
throw "Parameter error", Portion && "is not a recognized screen portion."
end if
return (the remoteScreenSize,the remotescreenSize) * multiplier

screenPart()関数は、有効な矩形を表す2つの座標ペアのセットを返します。これは、searchRectangleグローバルプロパティや画像検索プロパティが画面上の所望の検索領域を設定するために使用することができます。

例:

Set the searchRectangle to ScreenPart("LeftHalf") // パラメータ値"LeftHalf"をScreenPart()関数に渡します。
// 以下のすべての画像とOCRの検索は新しいsearchRectangleを尊重します
Click text:"State"
TypeText "Michigan"
Click text:"Zip Code"
TypeText "49418"
Click text:"Street Address"
TypeText "123 Main St."
Click "Submit"
Set the searchRectangle to empty // 検索エリアを全画面に戻します

例:

Click (image:"WelcomeMessage",searchRectangle:ScreenPart("TopHalf"),waitFor:10)

ヘルパースクリプトからScreenPart ()を呼び出す

より一般的には、screenPart()関数は呼び出しスクリプトとは別のスクリプト内で宣言されます。この場合、関数を呼び出すためには異なる構文が必要です。

例:

Click (image:"WelcomeMessage",searchRectangle:Rectangle.ScreenPart("BottomHalf")) // ScreenPart関数を呼び出すためにドット(.)構文を使用します。この関数はRectangleという名前のスクリプト内で宣言されています。

例:

set the searchrectangle to Rectangle's screenPart ("BottomRightQuadrant") // ScreenPart関数を呼び出すためにアポストロフィーs('s)の構文を使用します。この関数はRectangleという名前のスクリプト内で宣言されています。