マウスイベントと制御

本セクションでは、マウスイベントを実行したり、SUT上のマウスカーソルに関する情報を返すEggplant Functionalコマンドおよび関数について説明します。ClickDoubleClickDragDropDragandDropMouseButtonDown、およびMouseLocation()などを含む多くのコマンドおよび関数は、モバイルSUTやデスクトップSUTで作動し、モバイルプラットフォームとデスクトッププラットフォームの両方を自動化するスクリプトの作成に役立ちます。SenseTalkには、一連のモバイルコマンドと関数も含まれており、そのうちTapDoubleTapPressなどのサブセットはデスクトップSUTと互換性があります。

Clickコマンド

注:本コードの定義により、画像ベースのスクリプティングにClickコマンドを使用する方法が説明されます。WebDriver接続に本コマンンドを使用する場合の情報は、WebDriverマウス&キーボードイベント: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はそれらがリストされている順番に画像を検索します。

ヒント:このTapコマンドとClickコマンドは同じイベントを実行し、デスクトップSUTとモバイルSUTの両方で使用できます。

DoubleClickコマンド

注:本コードの定義により、画像ベースのスクリプティングにDoubleClickコマンドを使用する方法が説明されます。WebDriver接続に本コマンドを使用する場合の情報は、WebDriverマウス&キーボードイベント: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はそれらがリストされている順番に画像を検索します。

ヒント:このDoubleTapコマンドおよびDoubleClickコマンドは同じイベントを実行し、デスクトップSUTとモバイルSUTの両方で使用できます。

RightClickコマンド

注:本コードの定義により、画像ベースのスクリプティングにRightClickコマンドを使用する方法が説明されます。WebDriver接続に本コマンドを使用する場合の情報は、WebDriverマウス&キーボードイベント: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)します。

注:標準の3ボタンマウスでは、ボタン1が左ボタン、ボタン2が中央ボタン、ボタン3が右ボタンとなります。ボタン4と5はスクロールホイールの動作を制御します。
ヒント:このSwipeDragおよびDropコマンドは、MouseButtonDown/Upボタン1と同様の多くの状況において、左のマウスボタンイベントを活用する多くの場面で役立ちます。
ヒント:デスクトップ上でスクロールする場合は、ScrollWheelDown/Upコマンドは一般的に、MouseButtonDown/Upのボタン4または5よりも簡単に使用できます。

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つの整数(マウスによってはクリック音が聴こえます)。

挙動: マウスホイールを上下にスクロールします。インクリメント当たりの実際のスクロールの量は、マウスドライバーやプラットフォーム、アプリケーションによって異なります。

ヒント:SUTのマウスホイールの簡単な試行方法として、ScrollWheelUpまたはScrollWheelDownコマンドをAd Hoc Do Box内の1パラメータで実行する方法があります。スクロールホイールが望ましい向きにスクロールするのに必要な回転方向(上または下)は直観に反する場合があるため、最初に試した回転方向でうまくいかない場合は、別の回転方向を試します。
ヒント:多くの場合、スクロールしたいウィンドウまたはペインの上にカーソルを置くには、ScrollWheelDown/Upコマンドの前にMovetoコマンドが必要です。

例:

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マウス&キーボードイベント: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マウスのカーソルを動かします。

ヒント:マウスオーバーエレメント(メニューまたはツールチップ)を使用して作業する場合は、マウスオーバーイベントがSUTに適切に登録されるようMouseMoveSpeedを変更しなければならない場合があります。デフォルト値の0を利用すると、カーソルは2つの点の間を滑らかに移動する代わりに、2点間をジャンプします。
ヒント:一続きのフライアウトメニューなどのように、リンク付けされたマウスオーバーエレメント間を移行する場合は、カーソルのデフォルトの斜め方向の移動を回避するために、MouseMoveModeの変更が必要になる場合があります。

例:

//以下のようなコードを利用して、水平方向のフライアウトメニューと連携するようにします

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マウスを動かします。

ヒント:マウスオーバーエレメント(メニューまたはツールチップ)を使用して作業する場合は、マウスオーバーイベントがSUTに適切に登録されるようMouseMoveSpeedを変更しなければならない場合があります。デフォルト値の0を利用すると、カーソルは2つの点の間を滑らかに移動する代わりに、2点間をジャンプします。
ヒント:一続きのフライアウトメニューなどのように、リンク付けされたマウスオーバーエレメント間を移行する場合は、カーソルのデフォルトの斜め方向の移動を回避するために、MouseMoveModeの変更が必要になる場合があります。

例:

//以下のようなコードを利用して、水平方向のフライアウトメニューと連携するようにします

Click "ObjectsMenu"

setOptions(MouseMoveMode:2,MouseMoveSpeed:10) //マウスカーソルの移動挙動と移動速度を変更します

MovetoEach"Circles", (text:"Radius"), "Value" //マウスカーソルを各画像のホットスポットまたは各テキスト文字列の中央に、指定された順序どおりに動かします

setOptions(MouseMoveMode:0,MouseMoveSpeed:0) //MouseMoveModeとMouseMoveSpeedをデフォルト値の0に戻します

Dragコマンド

注:本コードの定義により、Dragコマンドを画像ベースのスクリプティングに使用する方法が説明されます。WebDriver接続に本コマンンドを使用する場合の情報は、WebDriverマウス&キーボードイベント: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の左のマウスボタンを、最初に見つかった画像のホットスポットまたは座標の組が指定する位置で押したままにします。

ヒント:DragおよびDrop、ならびにDragandDropはモバイルSUT上で機能し、Swipeコマンドでは左のマウスボタンイベントの開始点のみを選択できるのに対して、左のマウスボタンの開始および解除地点を選択するオプションが提供されます。

例:

put the remoteScreenSize into ScreenSize //SUTの解像度を変数に保存します

Drag ScreenSize*(.7,.5) //SUT画面の横方向に70%、下方向に50%のドラッグを開始します

Drop ScreenSize*(.7,.2) //SUT画面の横方向に70%、下方向に20%のドラッグを終了します

Dropコマンド

注:本コードの定義により、Dropコマンドを画像ベースのスクリプティングに使用する方法が説明されます。WebDriver接続に本コマンンドを使用する場合の情報は、WebDriverマウス&キーボードイベント:Dropコマンドを参照してください。

例:

Drag "Apple" //「Apple」画像上でドラッグアクションを開始します

Moveto "Polish" //ドラッグを「Polish」画像まで継続します

Drop text:"Bucket" //ドラッグを文字列「Bucket」の位置で終了します

パラメータ:1つ以上の画像参照もしくはText(OCR)参照、または単一の座標位置。

挙動:所定の位置まで移動し、左のマウスボタンを放します。

ヒント:DragおよびDrop、ならびにDragandDropはモバイルSUT上で機能し、Swipeコマンドでは左のマウスボタンイベントの開始点のみを選択できるのに対して、左のマウスボタンの開始および解除地点を選択するオプションが提供されます。

例:

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の左のマウスボタンを最初の位置で押したままにし、その後マウスを次の位置まで動かして、最後の位置でマウスボタンを放します。

ヒント:DragおよびDrop、ならびにDragandDropはモバイルSUT上で機能し、Swipeコマンドでは左のマウスボタンイベントの開始点のみを選択できるのに対して、左のマウスボタンの開始および解除地点を選択するオプションが提供されます。

例:

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でも機能しますが、カーソルは通常可視化されません。

 

This topic was last updated on 2月 01, 2019, at 11:13:23 午前.

Eggplant icon Eggplant.io | Documentation Home | User Forums | Support | Copyright © 2019 Eggplant