マウスイベントと制御
Clickコマンド
例:
repeat with each item of ("Option1","Option2","Option3") //画像リストを通して繰り返します
click it//リスト内の現在の画像のホットスポットをクリックします
end repeat
例:
click(text:"Tweet",waitFor:10,searchRectangle:("AnchorLeft","AnchorRight")) //文字列「Tweet」の中央をクリックし、指定したsearchRectangleで表示されるまで最長10秒待機します
例:
//以下のようなコードを利用してFile Explorer/Finder内のファイルなどのアイテムセクションを選択し、その後そのファイルをコピーします
Click "FirstEntry" //画像「FirstEntry」のホットスポットをクリックします
KeyDown ShiftKey //シフトキーを押したままにします
Click "LastEntry" //画像「LastEntry」のホットスポットをクリックします
KeyUp ShiftKey //シフトキーを放します
RightClick //前回のマウスイベントと同じ場所を右クリックします
Click "CopyMenuItem"
例:
//クリック前に画像を2回検索すると、コンテンツがロードされるのに伴って変化するUIを自動化する際に役に立つ場合があります
WaitFor 10, "NewTweet" //画像NewTweetが表示されるまで待ちます
Click(Image:"NewTweet",HotSpot:(80,0)) //再度NewTweetを検索し、その画像左上の角の80ピクセル右手のクリックを送信します。HotSpot画像プロパティを含む場合は、「image:」プロパティの追加に注意します
例:
if ImageFound(text:"Cancel") then click FoundImageLocation() //見つかった文字列「Cancel」の中央部をクリックします
例:
Click the RemoteScreenSize*.5 //画面の中心点をクリックします
例:
//以下ようなコードを利用してトリプルクリックイベントを実行します
on TripleClick imageToClick //パラメータ「imageToClick」とともに、「TripleClick」と命名されたカスタムコマンドハンドラを宣言します
//次の3行でEggplant Functionalコマンド間のタイミングが変化するため、3回の短いクリックを連続して送信できるようになります
put the RemoteWorkInterval into defaultRWI //現在のRemote Work Interval値を保存して後で元に戻すことができるようにします
set the RemoteWorkInterval to .01 //RemoteWorkIntervalを0.01秒に設定し、イベントをSUTに送る速度を速くします
//RemoteWorkIntervalで指定された間隔で、以下の3行で画像を1度クリックし、その後同じ場所を2度さらにクリックします
Click imagetoClick //パラメータとして渡した画像のホットスポット位置でクリックを送信します
//その後、前回のクリックと同じ位置でクリックを2回発生させます
Click
Click
set the RemoteWorkInterval to defaultRWI //RemoteWorkIntervalを元の値に戻します
end TripleClick
パラメータ:1つ以上の画像参照もしくはText(OCR)参照、または単一の座標位置。
挙動:最初に見つかった位置のホットスポット(画像)または中央(OCR)でSUTマウスをクリックします。2つ以上の画像またはテキスト文字列を渡す場合は、Eggplant Functionalはそれらがリストされている順番に画像を検索します。
DoubleClickコマンド
例:
//以下のようなコードを利用して、クリップボードを使用してSUTから値を取得します
doubleclick "ConfirmationNumber" //SUT上のテキストをハイライトするのに、画像ConfirmatioNumberのホットスポットをダブルクリックします
typetext controlKey, "c" //ハイライトされたテキストをSUTのクリップボードに保存するために、キー操作を利用してSUT上でコピーイベントを実行します
put the remoteClipboard into ConfNum //SUTのクリップボードのコンテンツを回収し、変数に保存します
例:
//本例は、上述したTripleClickの例に類似していますが、 DoubleClickと代替構文によってわずかに異なるアプロールを使用します
to handle TripleClick //「TripleClick」と命名されたカスタムコマンドハンドラを宣言します
put the MouseDoubleClickDelay into clickTime //後で使用するために、MouseDoubleClickDelayを変数のclickTimeに保存します
set the RemoteWorkInterval to clickTime //SUTに送信するイベント間の間隔であるRemoteWorkIntervalを、clickTimeに保存した値に設定します
DoubleClick param(1) //TripleClickハンドラに渡す最初のパラメータ値(画像名、1組の座標など)をダブルクリックします
Click//前回のダブルクリックと同じ場所をクリックします
set the RemoteWorkInterval to .7 //RemoteWorkIntervalを0.7秒に設定します
end TripleClick
パラメータ:1つ以上の画像参照もしくはText(OCR)参照、または単一の座標位置。
挙動:最初に見つかった位置のホットスポット(画像)または中央(OCR)でSUTマウスをダブルクリックします。2つ以上の画像またはテキスト文字列を渡す場合は、Eggplant Functionalはそれらがリストされている順番に画像を検索します。
RightClickコマンド
例:
RightClick(imageName: "Login", searchType: "smooth") //searchType(画像検索用の滑らかな画像プロパティ)を利用して、画像「Login」のホットスポットを右クリックします。画像プロパティを含む場合は、「imageName:」プロパティの追加に注意します
例:
rightClick text:"Firefox" //文字列「Firefox」の中央を右クリックします
moveTo text:"Send to" //マウスカーソルを文字列「Send to」の中央に動かします
例:
//以下のようなコードを利用してFile Explorer/Finder内のファイルなどの複数アイテムを選択し、その後そのファイルをコピーします
Click "FirstEntry" //画像「FirstEntry」のホットスポットをクリックします
KeyDown ControlKey //controlキーを押したままにします
Click "LastEntry" //画像「LastEntry」のホットスポットをクリックします
KeyUp AllKeys //controlキーを含む、押されているキーをすべて放します
RightClick //前回のマウスイベントと同じ場所を右クリックします
Click "CopyMenuItem"
パラメータ:1つ以上の画像参照もしくはText(OCR)参照、または単一の座標位置。
挙動:最初に見つかった位置のホットスポット(画像)または中央(OCR)でSUTマウスを右クリックします。2つ以上の画像またはテキスト文字列を渡す場合は、Eggplant Functionalはそれらがリストされている順番に画像を検索します。
MouseButtonDown、MouseButtonUpコマンド
例:
MouseButtonDown 3//ほとんどのマウスでマウスの右クリックボタンを押したままにします
wait 1
MouseButtonUp 3
例:
MoveTo "FirefoxIcon" //FirefoxIconのホットスポットの位置にマウスカーソルを動かします
MouseButtonDown 1 //マウスの左ボタンを押したままにします
MoveTo the remoteScreenSize*(3/4) //マウスカーソルをSUTの左下の四分円に移動させ、これに沿ってFirefoxアイコンをドラッグします
MouseButtonUp 1 //マウスの左ボタンを放します
例:
//以下のようなコードを利用して、モバイルSUTにコンテンツをペーストします
setremoteClipboard "This is my test message." //指定した文字列をSUTのクリップボードに保存します
MoveTo "MemoEditor" //AddressBar画像のホットスポットの位置にマウスカーソルを動かします
mousebuttondown 1 //マウスの左ボタンを押したままにします
wait 2 //ペーストダイアログが表示されるまで十分な時間待機します
mousebuttonup 1 //マウスの左ボタンを放します
tap "PasteDialog"
例:
set the remoteWorkInterval to .1 //remoteWorkIntervalを減らし、mousebuttondownイベントとmousebuttonupイベントが0.1秒間隔で生じるようにします
repeat until imagefound(image:"NewAddress",waitFor:0) //興味のある画像がSUTに表示されるまで繰り返します
//次の2つのコマンドはマウススクロールホイールを使用して、1度に1ページずつページを下にスクロールします
MouseButtonDown 5
MouseButtonUp 5
Wait 1 //「NewAddress」を検索する前に1秒間待ってUIを確定させる
end repeat
set the remoteWorkInterval to .7
パラメータ:1~8の単一のマウスボタン番号。
挙動:パラメータが指示するマウスボタンを押したり(MouseButtonDown)、放したり(MouseButtonUp)します。
ScrollWheelDown、ScrollWheelUpコマンド
例:
ScrollWheelDown 8
例:
repeat until imagefound(image:"NewAddress",waitFor:0) //指定した画像がSUTに表示されるまで繰り返します
Moveto remotescreensize()*(1/2) //マウスカーソルをSUT画面の中央に動かします
repeat until imagefound(image:"NewAddress",waitFor:0) //指定した画像がSUTに表示されるまで繰り返します
ScrollWheelDown 4 //4インクリメント、スクロールします
wait 1 //「NewAddress」を検索する前に1秒間待ってUIを確定させます
end repeat
click "NewAddress"
パラメータ:マウスホイールのインクリメントを表す1つの整数(マウスによってはクリック音が聴こえます)。
挙動: マウスホイールを上下にスクロールします。インクリメント当たりの実際のスクロールの量は、マウスドライバーやプラットフォーム、アプリケーションによって異なります。
例:
Moveto(image:"CustomerPanelHeader",hotspot:(200,150)) //CustomerPanelHeader画像の左上の角から200ピクセル右、150ピクセル下の位置にカーソルを動かします
ScrollWheelUp 10 //10インクリメント、スクロールします
例:
Moveto(image:"CustomerPanelHeader",hotspot:(200,150)) //CustomerPanelHeader画像の左上の角から200ピクセル右、150ピクセル下の位置にカーソルを動かします
ScrollWheelUp 10 //10インクリメント、スクロールします
MoveToコマンド
例:
moveto "Link" //マウスカーソルをリンク画像の上に動かします
waitfor 5, "Tooltip" //予期したツールチップが表示されるまで待ちます
例:
moveto the remotescreensize times .5 //マウスカーソルをSUT画面の中央に動かします
repeat until imagefound(image:"ContactUsLink",waitFor:0) //「ContactUsLink」画像がSUT上で可視化されるまで繰り返します
if the repeatIndex > 3 then Throw "Image not found.","Contact Us link not found." //repeatループを4回以上行う場合は例外を投げます
scrollwheeldown 1 //1インクリメント、スクロールします
wait 1 //スクロール後に1秒間待ってUIを確定させます
end repeat
パラメータ:1つ以上の画像参照もしくはText(OCR)参照、または単一の座標位置。
挙動: 最初に見つかった画像のホットスポット、または座標の組によって示された場所にSUTマウスのカーソルを動かします。
例:
//以下のようなコードを利用して、水平方向のフライアウトメニューと連携するようにします
Click "ObjectsMenu"
set the MouseMoveMode to 1 //マウスカーソルの移動挙動を変更し、最初に水平方向に、次に垂直方向に動くようにします
set the MouseMoveSpeed to 5 //マウスカーソルの移動速度を変更し、2点間をジャンプするのではなく、滑らかに動くようにします
MoveTo "FirefoxIcon" //画像「Circles」のホットスポットの位置にマウスカーソルを移動させます
Moveto text:"Radius" //マウスカーソルを文字列「Radius」の中央に移動させます
Moveto "Value"
set the MouseMoveMode to 0 //マウスの移動挙動をデフォルトに戻します
set the MouseMoveSpeed to 0 //マウスの移動速度をデフォルトに戻します
MoveToEachコマンド
例:
MoveToEach "Edit", (780, 91), "Copy"
パラメータ:1つ以上の画像参照またはText(OCR)参照。
挙動:パラメータが指示する位置に、それらが記載されている順序どおりにSUTマウスを動かします。
例:
//以下のようなコードを利用して、水平方向のフライアウトメニューと連携するようにします
Click "ObjectsMenu"
setOptions(MouseMoveMode:2,MouseMoveSpeed:10) //マウスカーソルの移動挙動と移動速度を変更します
MovetoEach"Circles", (text:"Radius"), "Value" //マウスカーソルを各画像のホットスポットまたは各テキスト文字列の中央に、指定された順序どおりに動かします
setOptions(MouseMoveMode:0,MouseMoveSpeed:0) //MouseMoveModeとMouseMoveSpeedをデフォルト値の0に戻します
Dragコマンド
例:
set the MouseDragSpeed to 5 //ドラッグアクションの速度を落とします
Drag "FirefoxIcon" //「FirefoxIcon」画像上のドラッグアクションを開始します
Drop the remoteScreenSize*(3/4) //SUT画面の右下の四分円内のドラッグアクションを終了します
set the MouseDragSpeed to 10 //ドラッグ速度をデフォルト値に戻します
例:
put imageLocation("Node") into ElementLoc //「Node」画像の位置を変数に保存します
Drag ElementLoc //変数「ElementLoc」に保存されている位置でドラッグアクションを開始します
Drag ElementLoc - (400,300) //ElementLoc内の位置から400ピクセル左および300ピクセル上でドラッグアクションを終了します
パラメータ:1つ以上の画像参照もしくはText(OCR)参照、または単一の座標位置。
挙動:SUTの左のマウスボタンを、最初に見つかった画像のホットスポットまたは座標の組が指定する位置で押したままにします。
例:
put the remoteScreenSize into ScreenSize //SUTの解像度を変数に保存します
Drag ScreenSize*(.7,.5) //SUT画面の横方向に70%、下方向に50%のドラッグを開始します
Drop ScreenSize*(.7,.2) //SUT画面の横方向に70%、下方向に20%のドラッグを終了します
Dropコマンド
例:
Drag "Apple" //「Apple」画像上でドラッグアクションを開始します
Moveto "Polish" //ドラッグを「Polish」画像まで継続します
Drop text:"Bucket" //ドラッグを文字列「Bucket」の位置で終了します
パラメータ:1つ以上の画像参照もしくはText(OCR)参照、または単一の座標位置。
挙動:所定の位置まで移動し、左のマウスボタンを放します。
例:
set ScreenSize to remoteScreenSize() //変数にSUTの解像度を保存します
Drag ScreenSize times(7/10,1/2) //SUT画面の横方向に7/10、下方向に1/2のドラッグを開始します
Drop ScreenSize times(7/10,1/5) //SUT画面の横方向に7/10、下方向に1/5のドラッグを終了します
DragAndDropコマンド
例:
DragandDrop "Apple", "Polish", text:"Bucket" //「Apple」画像上でドラッグを開始して「Polish」画像まで継続し、文字列「Bucket」で終了します
パラメータ:画像参照、Text(OCR)参照または座標の組によって特定される2つ以上の位置。
挙動:SUTの左のマウスボタンを最初の位置で押したままにし、その後マウスを次の位置まで動かして、最後の位置でマウスボタンを放します。
例:
set ScreenSize to remoteScreenSize() //変数にSUTの解像度を保存します
DragandDrop ScreenSize*(.7,.5),ScreenSize*(.7,.2) //SUT画面の横方向に70%、下方向に50%のドラッグを開始し、その後横方向に70%、下方向20%のドラッグ終了します
MouseLocation()関数
例:
log MouseLocation() //マウスカーソルの現在の位置をログに記録します
例:
Click "Submit"
put the mouseLocation into StartingPoint //以前のアクションで残された位置に基づき、現在のマウスカーソル位置を変数に保存します
Click "Update"
Click StartingPoint //StartingPointに保存されている位置をクリックします
戻り値:現在のマウス位置の座標。
挙動:現在のマウス位置の座標を返します。この関数はモバイルSUTでも機能しますが、カーソルは通常可視化されません。