SikuliXのプログラム

バッファローのブロードバンドルータの設定を例にします。

Yamahaのルータはコマンドが使えるけど、安いルータはブラウザで設定するしかない。もしかして、安いルータもLinuxなので裏技ありますかね?

ブラウザの操作を自動化したくて、SikuliXを使った。

キーボード操作は、typeを使う。

  • ファイル名を指定して実行は、Windowsキー+rはtype(“”,Key.WIN)
  • 貼り付けは、paste(“chrome”)。結果的にchromeを入力と同等。
  • 改行は、改行コードを入れる。type(“\n”)
  • Chromeのアドレスバーは、type(“l”,Key.CTRL)。ここを参照。
  • passという文字列を入力、type(“pass”)

ある画像があるかどうか待つ、exists(画像,待つ秒数)

ある画像をクリックする、click(画像)

秒数待つ、wait(秒数)

if 条件文:
TAB文字 コマンド
else:
TAB文字 コマンド
空白文字が左に無いとIf文を抜けることになる。

Regionはある範囲の変数として登録できる。ここではr1変数

withを使って範囲内の処理にする

with 範囲変数:
TABキー コマンド

か以下のように使う。

もし、riのレンジ(範囲)にぺけ✕マークが無かったらエラーになる。その場合は、

if ri.exists(✕画像)を使う。画像があるかないかで実行を分岐します。これ便利。エラー防止できるね。待ち時間を追加もできる。ri.exists(画像,秒数)。当然、ディスクトップ全体exists(画像,秒数)も使えます。

コピペすると画像部分はファイル名になります。

type("r", Key.WIN)
paste("chrome")
type("\n")
wait(1)
type("l",Key.CTRL)
paste("192.168.11.1")
type("\n")

exists("1588775045755.png",8)
click("1588775045755.png")
type("pass")
type("\n")
exists("1588776243359.png",15)
click("1588776243359.png")
wait(8)
exists("1588776486229.png",3)
click("1588776486229.png")
exists("1588776523376.png",2)
click("1588776523376.png")
wait(2)
if exists("1588776582583.png",2):
    click("1588776582583.png")
else:
    click("1588776773718.png")

wait(11)
click("1588776816413.png")

r1=Region(1364,0,236,43)
r1.click("1588776847092.png")