マウスイベントとコントロール
このセクションでは、Eggplant Functionalのマウスイベントを実行したり、SUT上のマウスカーソルに関する情報を返したりするコマンドと関数について説明します。これらのコマンドと関数の多くは、Click
、DoubleClick
、Drag
、Drop
、DragandDrop
、MouseButtonDown
、そして MouseLocation()
など、モバイルSUTだけでなくデスクトップSUTに対しても動作し、モバイルとデスクトップの両方のプラットフォームを自動化するスクリプトの作成に役立ちます。SenseTalkには、モバイルコマンドと関数のセットも含まれており、その一部(Tap
、DoubleTap
、Press
など)はデスクトップSUTと互換性があります。
Click
コマンド
このコード定義では、画像ベースのスクリプティングのための Click
コマンドの使用について説明しています。このコマンドをWebDriver接続に使用する方法については、WebDriver Mouse and Keyboard Events: Click Commandをご覧ください。
動作: 最初に見つかった場所(画像)のホットスポットか、または中央(OCR)にSUTのマウスをクリックします。もし一つ以上の画像またはテキスト文字列が渡された場合、Eggplant Functionalはそれらがリストされた順序で画像を探します。
Tap
と Click
コマンドは同じイベントを実行し、デスクトップとモバイルの両方のSUTに対して使用することができます。
パラメータ: 一つ以上の 画像参照 または テキストプロパティ (OCR用), または単一の座標位置。
例:
repeat with each item of ["Option1","Option2","Option3"] //画像のリストを通じて繰り返す
click it//リストの現在の画像のホットスポットをクリックする
end repeat
例:
click{text:"Tweet",waitFor:10,searchRectangle:["AnchorLeft","AnchorRight"]} //指定されたsearchRectangleで約10秒間待ってから、"Tweet"という文字列の中央をクリックします
例:
このようなコードを使用して、ファイルエクスプローラ/ファインダー内のアイテムのセクションを選択し、その後でファイルをコピーすることができます
Click "FirstEntry" //画像 "FirstEntry" のホットスポットをクリックします
KeyDown ShiftKey //Shiftキーを押し続けます
Click "LastEntry" //画像 "LastEntry" のホットスポットをクリックします
KeyUp ShiftKey //Shiftキーを離します
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 //現在のリモート作業間隔の値を保存し、後で元に戻すことができるようにします
set the RemoteWorkInterval to .01 //リモート作業間隔を0.01秒に設定し、イベントをSUTに大幅に高速で送信できるようにします
//これらの3行は、指定されたリモート作業間隔で、画像を1回クリックし、その後、同じ位置を2回クリックします
Click imagetoClick //パラメータとして渡された画像のホットスポット位置にクリックを送信します
//2回のクリックは、前 のクリックと同じ位置で行います
Click
Click
set the RemoteWorkInterval to defaultRWI //リモート作業間隔を元の値に戻します
end TripleClick
DoubleClick
コマンド
このコード定義は、画像ベースのスクリプティングのための DoubleClick
コマンドの使用方法を説明します。WebDriver接続のためのこのコマンドの使用についての情報は、WebDriver Mouse and Keyboard Events: DoubleClick Commandを参照してください。
振る舞い: 最初に見つかった位置のホットスポット(画像)または中央(OCR)でSUTマウスをダブルクリックします。複数の画像またはテキスト文字列が渡された場合、Eggplant Functionalは、リストされた順序で画像を検索します。
DoubleTap
と DoubleClick
コマンドは同じイベントを実行し、デスクトップとモバイルのSUTの両方に対して使用することができます。
パラメータ: 1つ以上の Image References や Text Properties (for OCR)、または単一の座標位置。
例:
//クリップボードを使用してSUTから値を取得するためにこのようなコードを使用します
doubleclick "ConfirmationNumber" //SUT上のテキストをハイライトするために画像 ConfirmationNumberのホットスポットをダブルクリックtypetext controlKey, "c" //キーストロークを使用してSUTでコピーイベントを実行し、ハイライトされたテキストをSUTのクリップボードに入れます
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ハンドラに渡された最初のパラメータ値(画像名、座標ペアなど)をダブルクリックします
Click//前のDoubleClickと同じ位置をクリックします
set the RemoteWorkInterval to .7 //RemoteWorkIntervalを0.7秒に設定します
end TripleClick
RightClick
コマンド
このコード定義は、画像ベースのスクリプティングのための RightClick
コマンドの使用方法を説明します。WebDriver接続のためのこのコマンドの使用について の情報は、WebDriver Mouse and Keyboard Events: RightClick Commandを参照してください。
振る舞い: 最初に見つかった場所のホットスポット(画像)または中央(OCR)でSUTのマウスを右クリックします。1つ以上の画像やテキスト文字列が渡された場合、Eggplant Functionalは、リストされた順序で画像を検索します。
パラメータ: 1つ以上のImage ReferencesまたはText Properties(OCR用)、または単一の座標位置。
例:
RightClick {imageName: "Login", searchType: "smooth"} //searchType:smoothの画像プロパティを使用して、"Login"の画像のホットスポットを右クリックします。画像プロパティを含める際には "imageName:" プロパティを追加することに注意してください。
例:
rightClick text:"Firefox" //"Firefox"という文字列の中心で右クリックします
moveTo text:"Send to" //"Send to"という文字列の中心にマウスカーソルを移動します
例:
//こ のようなコードを使用して、複数のアイテム(File Explorer/Finder内のファイルなど)を選択し、そのファイルをコピーすることができます
Click "FirstEntry" //"FirstEntry"の画像のホットスポットをクリックします
KeyDown ControlKey //コントロールキーを押し続けます
Click "LastEntry" //"LastEntry"の画像のホットスポットをクリックします
KeyUp AllKeys //コントロールキーを含むすべてのキーをリリースします
RightClick //前のマウスイベントと同じ位置で右クリックします
Click "CopyMenuItem"
MouseButtonDown
, MouseButtonUp
コマンド
振る舞い: パラメータで示されるマウスボタンを押す(MouseButtonDown
)か、離す(MouseButtonUp
)。
標準的な3ボタンマウスでは、ボタン1は左ボタン、ボタン2は中ボタン、ボタン3は右ボタンです。ボタン4と5はスクロールホイールの動作を制御します。
Swipe
、Drag
、Drop
コマンドは、多くのケースで MouseButtonDown/Up 1
と同じ状況で役立ちます。これらはすべて左マウスボタンイベントを活用しています。
デスクトップでスクロールするとき、ScrollWheelDown/Up
コマンドは MouseButtonDown/Up 4/5
よりも一般的に使いやすいです。
パラメータ: 単一のマウスボタン番号、1-8。
例:
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 //mousebuttondownとmousebuttonupイベントが.1秒間隔で発生するようにremoteWorkIntervalを減らします
repeat until imagefound(image:"NewAddress",waitFor:0) //興味のある画像がSUTに表示されるまで繰り返します
//次の2つのコマンドは、マウスのスクロールホイールを使用して、ページを一度に1つの増分で下にスクロールします
MouseButtonDown 5
MouseButtonUp 5
Wait 1 // "NewAddress"を検索する前にUIが落ち着くのを1秒待ちます
end repeat
set the remoteWorkInterval to .7
ScrollWheelDown
, ScrollWheelUp
コマンド
動作: マウスホイールを上または下にスクロールします。スクロールの増分あたりの実際の量は、マウスドライバ、プラットフォーム、およびアプリケーションによります。
SUTのマウス ホイールを試す簡単な方法は、Ad Hoc Do Boxでパラメータが1のScrollWheelUpまたはScrollWheelDownコマンドを実行することです。時々、スクロールホイールを望む方向にスクロールするために回す必要がある方向(上/下)が直感的でないため、最初に試した方向が機能しない場合は、他の方向も試してみてください。
ほとんどの場合、Moveto
コマンドが必要で、これはカーソルをスクロールしたいウィンドウまたはペインの上に配置するためです。
パラメータ: マウスホイールの増分を表す単一の整数(一部のマウスで音を立てるクリック。)。
例:
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"を検索する前にUIが落ち着くのを1秒待ちます
end repeat
click "NewAddress"
例:
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
コマンドの使用を説明しています。WebDriver接続用のこのコマンドの使用については、WebDriver Mouse and Keyboard Events: MoveTo Commandをご覧ください。
動作: SUTのマウスカーソルを、最初に見つか った画像のホットスポット、または座標ペアによって示される位置に移動します。
ホバー要素(メニューやツールチップ)を操作するときには、the MouseMoveSpeed
グローバルプロパティを変更する必要があります。これにより、ホバーオーバーイベントがSUT上で正しく登録されます。デフォルトの値0を使用すると、カーソルは位置間をスムーズに移動するのではなく、ジャンプします。