画像とOCRの検索
これらのコマンドと関数は、テスト対象システム(SUT)上で画像または光学文字認識(OCR)の検索を実行します。
以下の画像とOCRの検索コマンドと関数の検索動作は、ImageSearchCount、ImageSearchDelay、ImageSearchTime のグローバルプロパティを使用することでさらに制御することができます。
EveryImageLocation 関数
Behavior: 与えられた画像またはテキスト(OCR)のすべての出現箇所をSUTで検索します。画像の各出現箇所のホットスポット座標のリスト、またはOCRを使用した場合のテキスト文字列の中心のリストを返します。座標は発見された順にリストされ、SUTの左上角に最も近い画像とテキストが最初に見つかります。画像またはテキスト(OCR)が見つからない場合、EveryImageLocationは空のリストを返します。
Parameters: 一つ以上の画像参照またはプロパティ、またはテキストプロパティ(OCR用)。
構文:
EveryImageLocation( imageOrTextReference )
Returns: 与えられた画像のすべてのインスタンスの座標。例えば:
[[288,325],[288,356],[288,387],[288,448]]
例:
追加の画像検索プロパティを渡す場合、この例の ように ImageName プロパティの指定が必要です。
log EveryImageLocation(ImageName:"CheckBoxes",scale:[1,.5]) // 元のサイズと半分のスケールで見つけた画像のすべての出現箇所のホットスポット座標のリストをログに記録します。画像検索の追加プロパティを含めるときに ImageName プロパティを使用することに注意してください。
例:
click the penultimate item of EveryImageLocation(text:"AddressField") // テキスト(OCR)の出現箇所のリストの最後から2番目の項目をクリックします。
例:
set the RemoteWorkInterval to .1 // RemoteWorkInterval(デフォルト=.7)を短縮して、Eggplant FunctionalがSUTに送信するアクション間の一時停止を減らします。この変更により、クリックのシリーズがはるかに高速に実行されます。
repeat with EveryImageLocation("RadioButton") // everyImageLocation()で見つけた画像の各出現箇所を繰り返します。
click it // it変数を使用して、repeatループが操作中の現在の出現箇所をクリックします。
end repeat
set the RemoteWorkInterval to .7
例:
// 次の例は、前の例の別の構文を提供します。
repeat with each item of EveryImageLocation("RadioButton")
click it // it変数を使用して、repeatループが操作中の現在の出現箇所をクリックします。
end repeat
EveryImageLocation 関数を呼び出すと、すぐに the result を呼び出して、EveryImageLocation で表されるすべてのイメージの ImageInfo を返すことができます。
例:
put EveryImageLocation("GreenSaveButton","BlueSaveButton","RedSaveButton") // 画像のすべての出現箇所のホットスポット座標のリストを返します。
put the result // EveryImageLocationで表現されるすべての画像のimageInfoを返します。
EveryImageRectangle関数
Behavior: SUTで指定された画像またはテキスト(OCR)のすべての出現箇所を検索します。画像またはテキスト(OCR)のすべての出現箇所の矩形座標のリストを返します。座標は、SUTの左上隅に最も近い画像とテキストが最初に見つかる順序でリストされます。画像またはテキスト(OCR)が見つからない場合、EveryImageRectangleは空のリストを返します。
Parameters: 1つ以上の画像リファレンスまたはプロパティ、またはテキストプロパティ (OCR用)。
文法:
EveryImageRectangle( imageOrTextReference )
Returns: 指定された画像または画像のすべてのインスタンスの矩形座標。
例:
put EveryImageRectangle("TotalAmountLabel", "ItemizedAmountLabel") // 画像のすべての出現箇所の矩形座標のリストを返します。
例:
assert that the number of items in EveryImageRectangle(ImageName:"CheckBoxes",searchRectangle:["SelectOptionsUpperLeft","SelectOptionsLowerRight"]) is 4 // 画像の出現箇所の数が期待値4に等しいかどうかを検証します。例出力:AssertionFailed(主張:EveryImageRectangle(ImageName:"ImageName")の項目の数は4です; 実際には:5は4に等しくない)
例:
Set StatusRectangles to EveryImageRectangle(text:"StatusLabel") // EveryImageRectangleの戻り値をStatusRectanglesという変数に保存します。
Log "There are"&&the number of items of StatusRectangles&&"statuses to check." // StatusRectanglesに保存されたリストの出現回数と2つの文字列を連結してログに出力します。
repeat with each Rectangle of StatusRectangles // Rectangleという変数名を使用してリストの各項目を繰り返します。
Set StatusIndicatorLocation to the TopRight of Rectangle plus (15,0) // 現在の出現箇所の右上隅から15ピクセル右に座標調整を行い、その結果を変数StatusIndicatorLocationに保存します。
If ColorAtLocation(StatusIndicatorLocation) is "59,170,43" then Log "The status is green." // ColorAtLocation()関数を使用してStatusIndicatorLocationのRGB値を見つけ、それを期待値、59,170,43と比較します。
end repeat
EveryImageRectangle 関数を呼び出すと、すぐに the result を呼び出して、EveryImageRectangle で表されるすべての画像の ImageInfo を返すことができます。
例:
put EveryImageRectangle("GreenSaveButton","BlueSaveButton","RedSaveButton") // これらの画像のすべての出現箇所の矩形座標のリストを返します。
put the result // EveryImageRectangleで表現されるすべての画像のimageInfoを返します。
ImageFound関数
Behavior: ビューアーウィンドウを介してSUT上で指定された画像またはテキスト(OCR用)を検索します。画像/テキストが見つかった場合はtrueを、見つからなかった場合はfalseを返します。最大待機時間パラメータは、画像/テキストが見つかるまでの時間を指定します。この時間を超えるとfalseが返されます。
Parameters: 1つ以上の画像リファレンスまたはプロパティ、またはテキストプロパティ (OCR用)。
構文:
ImageFound( imageOrTextReference )
Returns: TrueまたはFalse。
例:
if ImageFound(ImageName:"OKButton") then // 画像が見つかるかどうかをチェックします。
click FoundImageLocation() // ImageFoundが真を返す場合、FoundImageLocation関数を使用してImageFound関数によって見つかった画像の保存された位置をクリックします。
else
TypeText AltKey,F4 // ImageFoundが偽を返す場合、アプリケーションを閉じるためのキーストロークを実行します。
end if
例:
この例のように、追加の画像検索プロパティを渡すときには、ImageNameプロパティを含める必要があります。
Repeat until ImageFound(ImageName:"NextButton",WaitFor:0) // このリピートループは、ImageFound関数が真を返すまで反復します。
Typetext PageDown // ページダウンキーボードアクションを送信してページをスクロールダウンします。
Wait 2 // スクロールアクション後にアプリケーションが停止するまで2秒待ちます。
if the repeatindex is greater than 5 then throw "Image Not Found:", "NextButton not found when scrolling." // この条件文はリピートループが5回以上反復されたかどうかをチェックし、そうであれば例外を投げて実行を停止します。
end repeat
例:
imagefound() を使ってテキストを検索するには、text プロパティを指定します。SearchRectangle() を使って検索範囲を設定すると、テキスト検索に便利です。
if imagefound(text:"Hello!", SearchRectangle:("Image1","Image2"))
then
click foundimagelocation()
log "clicked it!"
else
logerror "didn't find the word"
end if
最大時間が0に設定されている場合、Eggplant Functionalはすぐに検索を行い、Viewerウィンドウを更新したり、マウスを再配置したりして画像を見つけようとはしません。これは、存在しない可能性のある画像を検索する最も速い方法です。
ImageLocation関数
Behavior: SUT上の指定された画像またはテキスト(OCR)を検索します。見つかった最初の画像の最初の出現のホットスポット座標またはテキスト(OCR)の矩形の中心を返します。画像が見つからない場合は、例外がスローされます。
Parameters: 1つ以上の画像リファレンスまたはプロパティ、またはテキストプロパティ (OCR用)。
構文:
ImageLocation( imageOrTextReference )
Returns: 画像のホットスポット位置またはテキスト(OCR)矩形の中心の座標。例: [338, 335]
例:
set SectionHeaderLocation to ImageLocation(text:"Billing Address") // ImageLocationの戻り値をSectionHeaderLocationという変数に保存します。テキスト(OCR)検索なので、戻り値は "Billing Address"の矩形の中心の座標です。
例:
click ImageLocation("NameLabel") + [50,-10] // 画像のホットスポットの位置から右に50ピクセル、上に10ピクセルの位置をクリックします。
例:
tap {ImageName:"OKButton",searchRectangle:["PopupHeader",ImageLocation("LowerRightAnchor") - [400,500]]} // searchRectangleの右下角を設定し、LowerRightAnchor画像のホットスポットから上に400ピクセル、左に500ピクセル調整します。
例:
スクロールバーの下ボタンの位置を保存して、保存した位置をクリックすることで、Eggplant Functionalは一度だけ画像を検索する必要があり、ボタンを10回クリックする実行速度が向上します:
set ScrollDownButtonLocation to ImageLocation("ScrollDownButton")
repeat 10 times
click ScrollDownButtonLocation
end repeat
ImageRectangle関数
Behavior: SUTで指定した画像またはテキスト(OCR)を検索し、最初に見つかった画像の最初の出現の矩形座標を返します。画像検索の場合、ImageRectangleはキャプチャした画像のサイズと形状を尊重します。ただし、ClipRectangle画像検索プロパティが使用されている場合は除きます。OCR検索の場合、ImageRectangleは自動的にSUT上に表示されるテキスト文字列の周囲にフィットします。画像またはテキスト(OCR)が見つからない場合、例外がスローされます。
Parameters: 1つ以上の画像参照。
構文:
ImageRectangle( imageOrTextReference )
Returns: The rectangle coordinates of the found image. For example: [348,451,460,554]
例:
put ImageRectangle("CompanyLogo") //ImageRectangle の戻り値を実行ウィンドウにのみ出力します。
例:
log "The coordinates of the rectangle are" && ImageRectangle(ImageName:"PhoneTypeLabel",searchRectangle:["PhoneContactHeader","SectionDivider"]) //文字列とImageRectangleの戻り値を、間にスペースを入れて連結します。画像検索に追加のプロパティを含める場合は、ImageNameプロパティを使用することに注意してください。
例:
click the topLeft of ImageRectangle(ImageName:"EnableSetting") // ImageRectangle関数は、SUTを制御するコマンドと組み合わせることができます。ImageRectangleの特定の角を選択するためにtopLeft関数を使用していることに注意してください。
例:
set NameFieldRectangle to ImageRectangle(Text:"Name") // 見つかったテキスト (OCR) の矩形座標を変数に格納します。
set NameFieldValue to ReadText(Right of NameFieldRectangle, Top of NameFieldRectangle, Width of the RemoteScreenSize, Bottom of NameFieldRectangle) //ReadText を使用して、NameFieldLocation のすぐ右側の領域 (SUT 画面の右端まで) を読み取ります。
WaitFor Command, WaitFor Function
Behavior: SUT上で画像またはテキスト(OCR)が見つかるまでスクリプトの実行を停止します。指定された待機時間内に画像またはテキスト(OCR)が見つからない場合、例外がスローされます。待機時間はSUTの解像度、不一致設定、ネットワーク遅延、画像コレクションのサイズなどの要因に応じて自動的に調整されるため、実際の待機時間は指定された待機時間よりも長くなる場合があります。
Parameters: 待ち時間、1つ以上の画像参照またはプロパティ、またはテキストプロパティ(OCR用)。待ち時間のデフォルト単位は秒です。
コマンド 構文:
WaitFor time , imageOrTextReference1 {, imageOrTextReference2 ...}関数 構文:
WaitFor( time , imageOrTextReference1 {, imageOrTextReference2 ...} )
Returns: 指定された要素のいずれかが見つかるまでの待機時間。WaitFor をコマンドとして呼び出した場合、戻り値はスクリプトの次の行で 結果 を使用して参照できます。
例:
WaitFor 6.5, "OKButton", "ExitButton" // どちらかの画像が表示されるまで最大6.5秒間待ちます。
例:
WaitFor 2 minutes, {ImageName:"InstallationCompleteMessage",searchRectangle:["InstallProgressDialogUpperLeft","InstallProgressDialogLowerRight"]}
Put the result into elapsedTime // 画像が見つかるまでの実際の時間を記録する
WaitForは、任意の画像またはテキスト(OCR)の検索コマンドのプロパティとしても使用できます。WaitForコマンドと同様に、WaitForプロパティは、Eggplant Functionalが指定した画像がSUTに表示されるまでの最大待ち時間です。
例:
Click {ImageName: "Done_button", waitFor: 2 minutes}
また、ImageSearchTimeグローバルプロパティを使用して、画像またはテキスト(OCR)の検索範囲の検索時間に影響を与えることもできます。
waitコマンドは、スクリプトが設定した特定の時間を常に待つという点で、waitForおよびwaitForAllコマンドとは異なります。その後、スクリプトは次のステップに進みます。waitForおよびwaitForAllコマンドは、指定された要素がSUTスクリーン上で検出されるまでのみ待ちます。要素が待ち時間内に検出されない場合、例外がスローされます。
関連:
Wait: このコマンドを使用して、特定の時間の待機を挿入します。WaitForNotFound: このコマンドを使用して、要素が画面から消えるまで待機します。WaitForAll: このコマンドを使用して、複数の要素がすべて同時に見つかるまで待機します。
WaitForNotFoundコマンド、WaitForNotFound` 関数
Behavior: 指定された要素がSUT上で見つからなくなるまでスクリプトの実行を停止します。このコマンドは、SUT上で1つ以上の画面要素(画像またはテキスト)を検索します。指定された要素のいずれかがSUT上で見つかった場合、要素が見つからなくなるまで検索を繰り返します。指定された待機時間が経過しても要素がSUTから消えない場合は、例外がスローされます。
WaitForNotFound は機能的には WaitFor コマンドの逆です。WaitFor は画面に何かが表示されるまで一定時間待機しますが、WaitForNotFound は画面から何かが消えるまで一定時間待機します。
Parameters: 待ち時間、1つ以上の画像参照またはプロパティ、またはテキストプロパティ(OCR用)。待ち時間のデフォルト単位は秒です。
コマンド 構文:
WaitForNotFound time , imageOrTextReference1 {, imageOrTextReference2 ...}関数 構文:
WaitForNotFound( time , imageOrTextReference1 {, imageOrTextReference2 ...} )
Returns: 指定された要素が見つからなくなるまで待機した時間。WaitForNotFound をコマンドとして呼び出した場合、戻り値はスクリプトの次の行で the result を使用して参照できます。
例:
WaitForNotFound 6.5, "OKButton", "ExitButton" // どちらの画像も見つからなくなるまで最大 6.5 秒間待機します。
例:
WaitForNotFound 2 minutes, {ImageName:"InstallationCompleteMessage",searchRectangle:["InstallProgressDialogUpperLeft","InstallProgressDialogLowerRight"]} //指定された画像がなくなるまで待機します
Put the result into timeToDismiss // 画像が消えるまでの実際の時間を記録します
例:
WaitFor: このコマンドを使用して、要素が表示されるまで待機します。
WaitForAllコマンド
Behavior: ビューアウィンドウにすべての画像またはテキスト(OCR)パラメータが見つかるまで、スクリプトの実行を停止します。最大待機時間内にすべての要素が同時に見つからない場合は、例外がスローされます。
Parameters: 待ち時間と、1つ以上のイメージ参照またはプロパティ、またはテキストプロパティ(OCR用)。待ち時間のデフォルトの単位は秒です。
構文:
WaitForAll time , imageOrTextReference1 {, imageOrTextReference2 ...}
関連:
この例では、WaitForAllは、単一のテキスト文字列"Aretha Franklin"が表示されるまで、最大15秒待ちます。
WaitForAll 15, text:"Aretha Franklin"
例:
2つの画像を待つ必要がある場合、名前を文字列として渡すことができます。例えば次のようになります。
WaitForAll 15, "OKButton", "ExitButton"
例:
WaitForAllを使用して画像とテキスト文字列を同時に検索するため、また は複数のテキスト文字列を同時に検索するためには、下の例に示すように、それぞれのプロパティリストを個別に渡す必要があります。
WaitForAll 30, {text:"Updates Available"}, {image:"OKButton"}
WaitForAll 15, {text:"Diana Ross"}, {text:"Baby Love"}
例:
WaitForAll 5, {image:"Welcome"}, {text:"Susan",CaseSensitive:"yes"}
WaitForAllパラメータとして画像のリストが渡されると、Eggplant Functionalはリストのアイテムのどれか一つが見つかったときにそのパラメータを"見つかった"と考えます。
例:
WaitForAll 20, "crust", "sauce", ["peppers", "olives"]
このコマンドには3つのパラメータがあります:"crust"、"sauce"、そして他の2つのアイテムのリスト(角括弧で囲まれた)。それは次 のように解釈できます:
WaitFor20, "crust" // そして同時に...
WaitFor 20, "sauce" // そして同時に...
WaitFor 20, "peppers", "olives" // ...そしてこれらのアイテムのどちらかが出るのを同時に待つ
waitコマンドは、スクリプトが設定した特定の時間を常に待つという点で、waitForおよびwaitForAllコマンドとは異なります。その後、スクリプトは次のステップに進みます。waitForおよびwaitForAllコマンドは、指定された要素がSUTスクリーン上で検出されるまでのみ待ちます。要素が待ち時間内に検出されない場合、例外がスローされます。
関連:
Wait: このコマンドを使用して、特定の時間を待つように設定します。
WaitForColorコマンド
Behavior: 指定された色がViewerウィンドウに見つかるまで、次のスクリプトの実行を停止します。色が最大待ち時間内に見つかると、例外がスローされます。
Parameters: 待機時間、色、および定義した矩形。 waitForColorコマンドは、Eggplant Functionalでサポートされている任意の形式の色と、Eggplant Functionalでサポートされている任意の矩形の形式を受け付けます。
構文:
WaitForColor time , color , rectangle
例:
WaitForColor 5, "blue", [22,576,86,640]
SetSearchRectangle コマンド(廃止)
SetSearchRectangle コマンドは、Eggplant Functionalのグローバルプロパティである SearchRectangleによって廃止されました。 SearchRectangle のEggplant Functionalのグローバルプロパティを設定することが、検索矩形を設定する推奨の方法です。特定の状況でここに示されている SetSearchrectangle コマンドを代替手段として使用してください。
Behavior: スクリーン座標の2つのペアをパラメータとして受け取り、これらの点は検索領域の2つの対角角を定義します。
Parameters: スクリーンの領域の左上隅と右下隅を定義する座標または画像の2つのセットを受け取ります。
SUTscreenの左上隅は常に0,0です。
構文:
テックトーク
例:
SetSearchRectangle [[0,0],[100,100]]
例:
SetSearchRectangle ["TLImage","BRImage"]