OSS(オープンソースソフトウェア)のRPAツールであるSikuliX(シクリ)の基本コマンド、小ワザ集を備忘録としてまとめました。
最低限本記事のコマンド、小ワザを知っておけば、どのような操作にも応用可能です。
なお、SikuliXはOSSであるため無料で使えます。
しかも、OSSの中でも最も緩いMITライセンス(ライセンス種類の簡単な説明はこちらのリンク)なので企業で利用する分でも法務に相談といった面倒な手間をかけることなく、個人判断で利用出来るのでオススメです!
SikuliXの基本コマンド
キーボード操作
type(Key.TAB)
→TABキーを押す
type(Key.ENTER)
→ENTERキーを押す
type(“a”,Key.CTRL)
→全てを選択
type(“c”,Key.CTRL)t
→コピー(Ctrl+C)
type(“v”,Key.CTRL)
→ペースト(Ctrl+V)
type(Key.RIGHT)
→右キーを押す
type(Key.LEFT)
→左キーを押す
type(Key.DOWN)
→下キーを押す
type(Key.UP)
→上キーを押す
paste()
→引数に指定した文字列をペースト
*日本語の文字列をペーストする場合、paste(u”ほげほげ”)、というように記述すると文字化けせずにペーストできる。
マウス操作
click(img)
→引数で指定されたイメージを左クリック
rightClick(img)
→引数で指定されたイメージを右クリック
doubleClick(img)
→引数で指定されたイメージをダブルクリック
mouseMove(10, 50)
→x軸に10、y軸に50、マウスを動かす
wheel(WHEEL_UP, 10)
→マウスホイールを10、上に動かす
待機関数
wait([img,][])
→第1引数にイメージを指定した場合、第2引数で指定した秒数、第1引数のイメージ
が表示されるまで待つ。第1引数がない場合は、その秒数だけ一時停止する。
waitVanish(img[,])
→第1引数のイメージが画面上から消去されるのを、第2引数で指定した秒数だけ待つ。
exists(image[,])
→第1引数のイメージが画面上に表示されているか調べ、表示されていない場合、第
2引数で指定した秒数表示されるまで待つ。表示が確認できなかった場合には
False,できた場合Trueを返す。
強制プログラム停止
[Ctrl] + [Shift] + [C]
→想定と異なる動きをした際に強制停止させるショートカットキー。
SikuliXの小ワザ
指定の数、もしくはランダムな数、↓キーボードを押す
・↓キーを10回押す
#実行回数
num = 10
#繰り返し処理
for i in range(num):
type(Key.DOWN)
・↓キーを5〜15の範囲で押す
#モジュールインポート
import random
#5〜15の範囲の実行回数
num = random.randint(5, 15)
#繰り返し処理
for j in range(num_num):
type(Key.DOWN)
クリック範囲を限定する
1. Regionをクリックし、範囲を指定
2. 指定した範囲画像を変数に格納してwith文と共にclick()関数を使用する。
*限定するメリット:画像認識速度の向上。同一アイコンが一画面に複数ある場合、限定することで想定外の画像をクリックすることを防げる。
画像の内容に応じてクリック箇所を変える
・画像1だったらimg1をクリック、画像2だったらimg2をクリック、それ以外はimg3をクリック
if exists(画像1):
click(img1)
elif exists(画像2):
click(img2)
else:
click(img3)
・画像1だったら画像1をクリック、画像2だったら画像2をクリック、それ以外はimg3をクリック
if exists(画像1):
click(getLastMatch())
elif exists(画像2):
click(getLastMatch())
else:
click(img3)
→exists()で存在しているかを既に確認しているため、再度click()で画像認識する時間の無駄を避けるため、最後に画像マッチングしたときの結果を返してくれる”getLastMatchメソッド”を使う。
特定画像を見つけそこを起点に離れた箇所をクリックする
・画像1の40下をダブルクリック
target = find(画像1).below(40)
doubleClick(target)
スクリーンショットを撮る(3つのキー同時押し)
type(“3”, Key.CMD + Key.SHIFT)
*macOSの場合。
以上、SikuliX(シクリ)の基本コマンドと小ワザ集でした。最低限これを知っておけば大体どのような操作にも応用可能です。