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

画像とOCRの検索

これらのコマンドと関数は、テスト対象システム(SUT)上で画像または光学文字認識(OCR)の検索を実行します。

以下の画像とOCRの検索コマンドと関数の検索動作は、ImageSearchCountImageSearchDelayImageSearchTime のグローバルプロパティを使用することでさらに制御することができます。

EveryImageLocation 関数

動作: 与えられた画像またはテキスト(OCR)のすべての出現箇所をSUTで検索します。画像の各出現箇所のホットスポット座標のリスト、またはOCRを使用した場合のテキスト文字列の中心のリストを返します。座標は発見された順にリストされ、SUTの左上角に最も近い画像とテキストが最初に見つかります。画像またはテキスト(OCR)が見つからない場合、EveryImageLocationは空のリストを返します。

パラメータ: 一つ以上の画像参照またはプロパティ、またはテキストプロパティ(OCR用)。

構文:
EveryImageLocation( imageOrTextReference )

戻り値: 与えられた画像のすべてのインスタンスの座標。例えば:

((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関数

動作: SUTで指定された画像またはテキスト(OCR)のすべての出現箇所を検索します。画像またはテキスト(OCR)のすべての出現箇所の矩形座標のリストを返します。座標は、SUTの左上隅に最も近い画像とテキストが最初に見つかる順序でリストされます。画像またはテキスト(OCR)が見つからない場合、EveryImageRectangleは空のリストを返します。

パラメータ: 1つ以上の画像リファレンスまたはプロパティ、またはテキストプロパティ (OCR用)。

文法:
EveryImageRectangle( imageOrTextReference )

戻り値: 指定された画像または画像のすべてのインスタンスの矩形座標。

例:

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関数

動作: Viewerウィンドウで指定された画像を検索します。画像が見つかった場合はtrueを返し、見つからなかった場合はfalseを返します。最大待機時間パラメータを使用すると、falseが返される前に画像が見つかる時間を設定できます。

パラメータ: 1つ以上の画像リファレンスまたはプロパティ、またはテキストプロパティ (OCR用)。

文法:
ImageFound( imageOrTextReference )

返り値: 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
ノート

最大時間が0に設定されている場合、Eggplant Functionalはすぐに検索を行い、Viewerウィンドウを更新したり、マウスを再配置したりして画像を見つけようとはしません。これは、存在しない可能性のある画像を検索する最も速い方法です。

ImageLocation関数

動作: SUT上の指定された画像またはテキスト(OCR)を検索します。見つかった最初の画像の最初の出現のホットスポット座標またはテキスト(OCR)の矩形の中心を返します。画像が見つからない場合は、例外がスローされます。

パラメータ: 1つ以上の画像リファレンスまたはプロパティ、またはテキストプロパティ (OCR用)。

文法:
ImageLocation( imageOrTextReference )

返り値: 画像のホットスポットの座標またはテキスト(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関数

動作: SUTで指定した画像またはテキスト(OCR)を検索し、最初に見つかった画像の最初の出現の矩形座標を返します。画像検索の場合、ImageRectangleはキャプチャした画像のサイズと形状を尊重します。ただし、ClipRectangle画像検索プロパティが使用されている場合は除きます。OCR検索の場合、ImageRectangleは自動的にSUT上に表示されるテキスト文字列の周囲にフィットします。画像またはテキスト(OCR)が見つからない場合、例外がスローされます。

パラメーター: 1つ以上の画像参照

構文:
ImageRectangle( imageOrTextReference )

戻り値: 見つかった画像の矩形座標。例: (348,451,460,554)

例:

put ImageRectangle ("CompanyLogo") // ImageRectangleの戻り値をRunウィンドウにのみ表示します。

例:

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コマンド

動作: スクリプトの次の行の実行を、画像またはテキスト(OCR)がSUT上に見つかるまで停止します。指定した待ち時間内に画像またはテキスト(OCR)が見つからない場合、例外がスローされます。実際の待ち時間は、指定した待ち時間よりも長くなる可能性があります。これは、待ち時間が自動的にSUTの解像度、Discrepancy設定、ネットワーク遅延、画像コレクションのサイズなどの要因に調整されるためです。

パラメーター: 待ち時間、1つ以上の画像参照またはプロパティ、またはテキストプロパティ(OCR用)。待ち時間のデフォルト単位は秒です。

構文:
WaitFor time , imageOrTextReference1 {, imageOrTextReference2 ...}

例:

WaitFor 6.5, "OKButton", "ExitButton" // どちらかの画像が表示されるまで最大6.5秒間待ちます。

例:

WaitFor 2 minutes, {ImageName:"InstallationCompleteMessage",searchRectangle:["InstallProgressDialogUpperLeft","InstallProgressDialogLowerRight"]}
ノート

WaitForは、任意の画像またはテキスト(OCR)の検索コマンドのプロパティとしても使用できます。WaitForコマンドと同様に、WaitForプロパティは、Eggplant Functionalが指定した画像がSUTに表示されるまでの最大待ち時間です。

例:

Click (ImageName: "Done_button", waitFor: 2 minutes)

また、ImageSearchTimeグローバルプロパティを使用して、画像またはテキスト(OCR)の検索範囲の検索時間に影響を与えることもできます。

ノート

waitコマンドは、スクリプトが設定した特定の時間を常に待つという点で、waitForおよびwaitForAllコマンドとは異なります。その後、スクリプトは次のステップに進みます。waitForおよびwaitForAllコマンドは、指定された要素がSUTスクリーン上で検出されるまでのみ待ちます。要素が待ち時間内に検出されない場合、例外がスローされます。

関連:

  • Wait: このコマンドを使用して、特定の時間を待つように設定します。

WaitForAllコマンド

動作: 画像またはテキスト(OCR)のパラメーターの全てがViewerウィンドウで見つかるまで、次のスクリプトの実行を停止します。最大待ち時間内に全ての画像が見つからない場合、例外がスローされます。

パラメーター: 待ち時間と、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コマンド

動作: 指定された色がViewerウィンドウに見つかるまで、次のスクリプトの実行を停止します。色が最大待ち時間内に見つかると、例外がスローされます。

パラメーター: 待機時間、色、および定義した矩形。 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 コマンドを代替手段として使用してください。

パラメーター: スクリーンの領域の左上隅と右下隅を定義する座標または画像の2つのセットを受け取ります。

動作: スクリーン座標の2つのペアをパラメータとして受け取り、これらの点は検索領域の2つの対角角を定義します。

ノート

SUTscreenの左上隅は常に0,0です。

構文:
SetSearchRectangle( rectangle )

例:

SetSearchRectangle [[0,0],[100,100]]

テックトーク

SetSearchRectangle ["TLImage","BRImage"]