はじめに
今年(2019年)もCEATEC他各種の展示会が開催される展示会シーズンとなりました。
というわけで、CEATECの翌週のJapan IT Weekを見に幕張メッセに行きました。
台風の接近に伴う大雨の影響で、会場の外は閑散としていましたが…
中は…
ものすごい人でした!!😎
この手の展示会に行くとGUIを使った展示がほとんどなので、どちらかというとそういうものを作る側である本Webサイトの管理人たるpandaとしてはGUIについての操作は自動化したくなるところです。
そんな折、SikuliXのバージョンが2.0.0になっていたことと、年度末に向かってRPA的なものの力を借りたい季節がやってまいりましたので、SikuliX-2.0.0のインストールの方法とスクリプトの開発環境において使用できるJythonの関数のうち、最低限覚えておいた方が良い関数についてまとめてみました。
SikuliX-2.0.0のインストール
インストールは以下の手順で行うことができます。なお、1.1.4以降、基本的なインストールの方法に変更はないようです。
- インストール先のPC内の適当なところにインストール先のディレクトリを作成します。この記事ではCドライブの直下に”sikuliX-2.0.0″という名前のディレクトリ(c:\sikuliX-2.0.0)を作成したものとします。
- SikuliXのダウンロードページの”Edit and run scripts with the SikuliX IDE”の項にあるリンクからJARファイル(sikulix-2.0.0.jar)をダウンロードします。
- 手順2の次の項(“Needed for scripting support in the IDE and running scripts from commandline”)にあるリンクのうち、Jythonの方をダウンロードし、sikuliX-2.0.0.jarと同じディレクトリの下(c:\sikuliX-2.0.0)に置きます(下図参照)。
- 以下のコマンドを実行し、sikuliXを起動します。
java -jar c:\sikulix-2.0.0\sikulix-2.0.0.jar
- 以下の開発環境が起動し、手順3でダウンロードしたIDE用のJythonのjarファイルがIDEに組み込まれます。
SikuliXの主な関数
前の記事にも書きましたが、IDEからコマンドリストがなくなってしまったっぽいためにサクサク感が損なわれてしまったような感じは相変わらず継続していますので、今まで使用したことのある関数を主な関数であるとみなして以下にリストアップします。
click関数
- 構文: click(image)
- 機能: 第1引数で指定されたイメージと最も類似する部分を画面上から探し出し、イメージに指定された位置を左クリックします。
rightClick関数
- 構文: rightClick(image)
- 機能: 第1引数で指定されたイメージと最も類似する部分を画面上から探し出し、イメージに指定された位置を右クリックします。
doubleClick関数
- 構文: doubleClick(image)
- 機能: 第1引数で指定されたイメージと最も類似する部分を画面上から探し出し、イメージに指定された位置をダブルクリックします。
wait関数
- 構文: wait([image,][<seconds>])
- 機能: 第1引数にイメージを指定した場合には、第2引数で指定した秒数(ミリ秒単位で設定できます。以下同じ。)だけ第1引数で指定されたイメージと最も類似する部分が表示されるまで待ちます。第1引数として秒数のみが指定された場合には、その秒数だけスクリプトの実行を一時的に停止します。
waitVanish関数
- 構文: waitVanish(image[,<seconds>])
- 第1引数に指定したイメージと最も類似する部分が画面上から消去されるのを、第2引数で指定した秒数だけ待ちます。
exists関数
- 構文: exists(image[,<seconds>])
- 機能: 第1引数にイメージと最も類似する部分が画面上に表示されているかどうか調べ、表示されていない場合には第2引数で指定した秒数だけ表示されるまで待ちます。表示されていることが確認できなかった場合にはFalse, それ以外の場合にはTrueを返します。
type関数
- 構文: type(<String>)
- 機能: 第1引数に指定した文字列をタイプする関数です。キー配列は101キーボード決め打ちなので、文字列に記号が含まれる場合にはそれに合わせて指定する必要があります。また、英語以外の言語を入力する場合にはpaste関数を使った方が無難です。
paste関数
- 構文: paste(<String>)
- 機能: 第1引数に指定した文字列をペーストする関数です。日本語の文字列をペーストする場合には、以下の例のように記述すると文字化けせずにペーストできます。Python2のUTF-8の文字列記法といっしょですね。
paste(u"みなとみらい線")
まとめ
ここまでに書いた関数とJavaとPython2のスキルがあれば、SikuliXを使うことができるようになると思います。本Webサイトの管理人たるpanda的にはPython3推しですが、Jythonの開発がゆっくりペースのようですので、致し方のないところです。
詳細については本家のドキュメントをご参照いただけると幸い… と言いたいところですが、APIのソースコード等を見た方が良さそうなので、本Webサイトの管理人たるpandaが使っていく過程で便利そうな関数や超絶便利な使い方等を発見次第、この記事に追加するかもしれません。
panda先生の次回作にご期待をいただければと思います。😎
この記事は以上です。