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)
クリック範囲を限定する
-
Regionをクリックし、範囲を指定
-
指定した範囲畫像を変數に格納して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(シクリ)の基本コマンドと小ワザ集でした。最低限これを知っておけば大體どのような操作にも応用可能です。