SikuliXでAndroidスマホアプリケーションの自動耐久テストに向けて汎用的に使えるスクリプトを検討したのでメモを残します。
※スマホゲームの周回自動化が本当の目的
スクリプト
######################################### # 検索設定 ######################################### # 検索範囲とするウインドウ名 WINDOW_NAME = "" IMGS = [ # ここに検索対象のイメージパターンを追加する ] ######################################### # 動作設定 ######################################### # 最小一致閾値 デフォルト 0.7 Settings.MinSimilarity = 0.80 # マウス移動のディレイ:0 = アニメーションなし Settings.MoveMouseDelay = 0.1 # マウスダウンからアップするときの遅延時間 0.0 ~ 1.0 #Settings.ClickDelay = 0.1 ######################################### # 処理 ######################################### # APPNAMEのウインドウを探してRegion(検索範囲)に設定 app = App.focus(WINDOW_NAME) reg = Region(App.focusedWindow()) reg.highlight(1,"green") # ループ while True: # 検索 ms = reg.findAnyList(IMGS) # 結果msはIMGSの順で見つかったものが格納される for m in ms: # クリック m.click() # 最初に見つかったものだけ処理して終了 break sleep(1)
スクリプト説明
処理の流れは次のとおりです。
- 初期化
# WINDOW_NAMEのウインドウをアクティブにする app = App.focus(WINDOW_NAME) # アクティブウインドウの位置・サイズの認識領域に設定 reg = Region(App.focusedWindow()) # 認識領域をハイライト表示(デバッグ用) reg.highlight(1,"green")
- 認識対象領域で画像検索
ms = reg.findAnyList(IMGS)
- 最初に認識したものをクリック
m.click()
- 2~3のループ
0 件のコメント:
コメントを投稿