【RPA】sikuliX の基本的な使い方

※本記事は、以下で記載している sikuliXのインストール方法 を実施していることを前提に記載しています。

【RPA】sikuliXのインストール方法
画像識別で目的の場所(オブジェクト)を指定するなど、GUIを自動で操作するフリーツール:「sikuliX」。

その sikuliX の基本的な使い方(Windows での実施方法)を本記事でまとめます。

スポンサーリンク

使い方

※本ページの最後に参考動画も載せていますので、ぜひご覧ください。

V1.1.3の場合

V1.1.3では、UIの左側カラムに最低限のコマンド入力用のボタンが設けられています。以下が、そのUIです。コマンドについては、後ほど説明します。

これらのボタンを押下することで、コマンドが打てます。また、カメラマークがついているものについては、自動でキャプチャを撮る状態に遷移します。

 

使い方の例として、以下に「Internet Explorer をクリックして起動する」という動作を実際に自動化を構築し、自動操作を実施する手順を示します。

①[マウスの動作] > [click(  )] を押下する。

②画面が少し暗くなり、キャプチャを撮る画面に遷移するので、範囲選択でキャプチャを撮る。

③撮ったキャプチャが、自動でアプリ内に貼られる。

④[ファイル] > [名前を付けて保存] により、プログラムを保存する。

これで、プログラムが保存されます。ここで1点把握しておいてほしいことは、保存されるのはファイルではありません。「拡張子:.sikuli」を持つフォルダーということです。

例えば、保存ウィザードで入力する「フォルダー名」が「C:\tmp\sikuliFolder」とした場合、「C:\tmp」に「sikuliFolder.sikuli」というフォルダーが作られます。このフォルダーの中に、プログラムに使われている「画像ファイル」とpythonのソースコードが書かれている「xxx.py」ファイルが保存されます。

⑤保存後、「実行」ボタンを押下する。

⑥自動操作の処理が走るので、処理完了するまで待つ。

これにより、プログラムの保存と実行が行えます。

V1.1.4の場合

V1.1.4でも、基本的には V1.1.3と同じです。

異なる点は、手順①になります。ボタンを押下する代わりに、自身でコマンドを記載しないといけません。これは、V1.1.4でV1.1.3では存在した左側カラムがなくなっているためです(以下の画像を参照)。ただし、表示されていないだけで、コマンドは引き続き使用可能です。

V1.1.3と同様の例で言うと、V1.1.4では「click(  )」とタイプした後、「(」と「)」の間にカーソルを置き、「スクリーンショットを撮る」ボタンを押下します。

その後は、V1.1.3の手順②以降と同じ手順で実施が可能になります。

タイミングなどの状況によって、SikuliXで上手く「スクリーンショットを撮れない」という状態に陥ることがあります。この場合は、「スクリーンショットを撮る」ボタンを押下する代わりに「Shift + Ctrl + 2」を押下してみて下さい。
スポンサーリンク

コマンドの動作内容

ここからは、コマンドの動作内容を記載します。

※本ページの最後に下記のいくつかのコマンドを使用した参考動画も載せています。ぜひご覧ください。

検索系

コマンドできること備考
find( “画像” )画面または領域上で、最も画像に適したオブジェクトを探す見つけた画像に対してクリック動作などをする直前に使用すると、クリック動作などの画像添付を省略可能にできる。
findAll( “画像” )画面または領域上で、最も画像に適したオブジェクトをすべて探す
wait( “画像” )画面または領域上で、画像に適したオブジェクトが現れるまで待つ。
wait( “画像”, [timeout] )画面または領域上で、画像に適したオブジェクトが現れるまで、最高timeout[秒]の間、待つ。“画像”が省略されている場合も、timeout[秒]の間、待つ。
waitVanish( “画像” )画面または領域上で、画像に適したオブジェクトが消えるまで待つ。
waitVanish( “画像”, [timeout] )画面または領域上で、画像に適したオブジェクトが消えるまで、最高timeout[秒]の間、待つ。
exists( “画像” )画面または領域上で、画像に適したオブジェクトが存在するかを確認する。“画像”が見つからない場合は、None を戻り値として返す。
exists( “画像”, [timeout] )画面または領域上で、画像に適したオブジェクトが存在するかを最高timeout[秒]の間、確認する。見つからない場合は、None を戻り値として返す。

マウスの動作

コマンドできること
click( “画像” )画面または領域上で、最も画像に適したオブジェクトをシングルクリックする。
click( “画像”, [modifiers] )上記に加え、[modifiers]ではキーボード操作を指定できる。
doubleClick( “画像” )画面または領域上で、最も画像に適したオブジェクトをダブルクリックする。
doubleClick( “画像”, [modifiers] )上記に加え、[modifiers]ではキーボード操作を指定できる。
rightClick( “画像” )画面または領域上で、最も画像に適したオブジェクトを右クリックする。
rightClick( “画像”, [modifiers] )上記に加え、[modifiers]ではキーボード操作を指定できる。
hover( “画像” )最も画像に適したオブジェクトに、カーソルを移動させる。
dragDrop( “画像”,”画像” )1つ目の画像のオブジェクトをドラッグし、2つ目の画像のオブジェクトでドロップする。
dragDrop( “画像”,”画像”, [modifiers] )上記に加え、[modifiers]ではキーボード操作を指定できる。
mouseMove( X, Y )「X」「Y」に記載したピクセル分、マウスポインターを現地点から移動する。
負の値にすると「左」「下」に、正の値にすると「右」「上」に移動します。
mouseMove( Location (X, Y) )画面の左上を「0, 0」とした座標軸で、解像度の最大値とした「X」「Y」の座標値にマウスポインターを移動する。
[modifers]は省略可能です。
例えば、click()の[modifers]に 「Key.Modifier.SHIFT」と記載した場合は、Shiftキーを押しながらクリックする操作になります。
「Location (X, Y)」を用いると、画面の左上を「0, 0」とした座標軸で位置を指定することができます。
「変数 = Env.getMouseLocation()」と記載することで、マウスポインターの現地点の座標を取得できます。

キーボードの動作

コマンドできること
type( “テキスト” )フォーカスされているウィンドウで、テキストを入力する。
type( “テキスト”, [modifiers] )上記に加え、[modifiers]ではキーボード操作を指定できる。
type( “画像”, “テキスト” )最も画像に適したオブジェクトをクリックし、テキストを入力する。
type( “画像”, “テキスト”, [modifiers] )上記に加え、[modifiers]ではキーボード操作を指定できる。
paste( “テキスト” )フォーカスされているウィンドウで、テキストを張り付ける。
paste( “テキスト”, [modifiers] )上記に加え、[modifiers]ではキーボード操作を指定できる。
paste( “画像”, “テキスト” )最も画像に適したオブジェクトをクリックし、テキストを張り付ける。
paste( “画像”, “テキスト”, [modifiers] )上記に加え、[modifiers]ではキーボード操作を指定できる。

イベントの監視

コマンドできること
onAppear( “画像”, handler )最も画像に適したオブジェクトが現れた時に、handlerを呼ぶ。
onVanish( “画像”, handler )最も画像に適したオブジェクトが現れた時に、handlerを呼ぶ。
onChange( handler )画面・領域上で何か変化が起こった時に、handlerを呼ぶ。
observe( [time], [background] )画面・領域をtimeout[秒]の間、監視する。[background]を設定している場合、監視は background で行われる。
handlerは、「def ハンドラ名(event):」のようにPythonの「関数」と同じように記載して、処理を作成することができます。
handlerが呼び出されると、関数内に記載されている処理が実行されます。
スポンサーリンク

まとめ

以上、sikuliX の基本的な使い方として、V1.1.3でUI上に表示されていたオプションでできる内容に絞って説明しました。

参考になれば幸いです。

もう少し細かい使い方(小ネタや小技)については、別の記事でまとめています。

【sikuliX】使い方~キーボード操作編~
 

【sikuliX】構文~条件分岐(if文)編~
 

【sikuliX】構文~繰り返し(for文/while文)編~
 

【SikuliX】Sikuli IDEの便利機能をまとめます

↑↑上記のリンクをご覧ください。↑↑

また、参考動画もぜひご覧ください。

参考動画

スポンサーリンク