SikuliX 2.0.4のインストール方法と基本的な使い方。変更点・追加機能も解説
こんにちは、業務自動化ツール開発担当の吉池(@valmore_myoshi)です。
PC操作自動化ツールSikuliXのバージョン2がリリースされました。OCR機能が強化され、画像・テキスト検索機能にも変更があります。本記事ではその変更点について紹介します。
また、初めてSikuliXを触る人向けに改めてインストール方法(2020/5/19現在、最新バージョンのSikuliX 2.0.4)と基本的な使い方を解説します。 PC 操作を自動化できればルーティンワークを削減できるのでぜひ一度お試しください。
目次
SikuliXとは
SikuliXとは、クリックやテキスト入力などのPC操作を自動化できるツールです。PC画面上のアイコンやブラウザ上の入力欄を画像認識で特定して操作できます。
SikuliXにはスクリーンショット機能があるので、操作したい要素をあらかじめスクショ画像として保持できます。SikuliXプログラムの実行時にPC画面からスクショ画像と一致する領域を検索し、クリックやテキスト入力といった操作をする仕組みです。
SikuliXの仕組みやライセンス、自動化例について詳しく知りたい方はこちらの記事をどうぞ。
SikuliXとは?無料で使えるのに高機能な自動化ツールの全貌を徹底解剖!
SikuliX 2.0.Xの変更点・追加機能
SikuliX 2.0.Xでは主に下記の変更点・追加機能がリリースされています。
- OCR機能の強化:OCRエンジンを最新バージョンのTesseract 4.xにアップデート
- 透過画像の検索機能:透過画像の透明な部分を除外して検索可能
- Appクラスの改訂
そのほか、画像検索とテキスト検索のAPIがそれぞれ別個のものに分かれたので、詳しく見ていきます。
画像検索APIの改訂
主な画像検索APIは下記の表の通りです。繰り返し検索ありのAPIは目的の画像がPC画面上に表示されるか、制限時間内までPC画面上を検索し続けます。FindFailed例外ありのAPIは目的の画像が見つからない場合に例外を投げます。FindFailed例外がなしのAPIはnull/Noneを返します。
画像検索API名 | 繰り返し検索 | FindFailed例外 |
find | なし | あり |
wait | あり | あり |
exists | あり | なし |
has | あり | なし |
waitVanish | あり | なし |
findChanges | なし | なし |
hasはexistsをif文やwhile文に使用しやすくしたAPIです。existsは目的の画像がPC画面上で検索できた場合Matchオブジェクトを返すのに対し、hasはtrue/falseを返します。
テキスト検索APIの改訂
新たに新設されたテキスト検索のAPI名は、xxxTextのように画像検索API名の末尾にTextと付けられています。短縮名も用意されており、その場合はxxxTと書きます。
下記がテキスト検索APIです。テキスト検索APIは指定した領域の左上から右下に向かって検索していきます。そのため、一致するテキストが領域内に複数ある場合、常に左上に位置するテキストが取得されることに注意してください。
テキスト検索API名 | 繰り返し検索 | FindFailed例外 |
findText | なし | あり |
waitText | あり | あり |
hasText | なし | なし |
existsText | あり | なし |
waitVanishText | 未実装 | 未実装 |
上記APIのほかにも正規表現でテキスト検索できるfindWordとfindLine関数が新たに追加されましたが、正規表現を使ったテキスト検索機能はまだ実装していないようです。
SikuliX 2.0.4のインストール方法
SikuliXは64ビット版のOSのみサポートされています。マルチプラットフォームに対応しており、Windows、Mac、Linuxで動作します。Windows、Macについては下記バージョンで動作します。
- Windows XP, 7, 8, 10
- Mac OSX, 10.10以降
なお、モバイルOSはサポートしていないので注意してください。
Javaのインストール
SikuliXにはバージョン8以降の64ビット版Javaをインストールする必要があります。Javaは商用利用の場合ライセンスが必要になります。そのため、商用利用する場合はオープンソースのOpenJDKを推奨します。今回はJavaを例に取り上げます。
下記リンクからJavaのダウンロードページに飛んでください。
「無料Javaのダウンロード」をクリック。
ここで「同意して無料ダウンロードを開始」ボタンは押さないでください。こちらは32ビット版のJavaになります。「すべてのJavaダウンロードを表示します。」をクリックしてください。
OSに応じてダウンロードできるJavaの一覧が表示されます。Windowsは複数ありますがWindowsオフライン(64ビット)を選択してください。
ダウンロードが完了したらファイルをクリックし、指示に従ってJavaをインストールしてください。
SikuliX 2.0.4のインストール
まずはSikuliXを入れるフォルダを適当に作ります。今回はCドライブ直下にsikulix-2.0.4というフォルダを作成しました。
続いて下記リンクからSikuliXダウンロードページに飛びます。
https://raiman.github.io/SikuliX1/downloads.html
ここではSikuliXの開発環境であるSikuliX IDEとスクリプト実行ファイルの2つをダウンロードします。SikuliXで使用できるプログラミング言語はPythonとRubyがありますが、今回はPythonを選択します。下記画像の通り、2つのリンクをクリックしてダウンロードしてください。
ダウンロードしたファイルはさきほど作成したsikulix-2.0.4ファルダに入れます。
最後にsikulixide-2.0.4.jarファイルをクリックして完了です。jython-standalone-2.7.1.jarファイルが消えますが、SikuliX所定の拡張ファルダに移動しただけですので問題ありません。下記画像のようにSikuliXの開発環境が立ち上がればインストールは成功です。
開発環境が立ち上がらない場合はJavaのバージョンを確認してください。Windowsならコマンドプロンプト、Macならターミナルで「java -version」と打つとJavaのバージョンが表示されます。下記画像のように64ビット版がインストールされていることを確認してください。
SikuliXの基本的な使い方
ブラウザでのキーワード検索を例にとって、SikuliXの基本的な使い方を見ていきましょう。まず考えることはキーワード検索に必要な手順です。具体的には下記のようになります。
- ブラウザアイコンをクリックしてブラウザを開く
- ブラウザの検索欄をクリックしてテキスト入力できるようにする
- キーワードを入力する
- Enterを押して検索する
この手順を一つひとつSikuliXのプログラムに置き換えていきます。
最初のブラウザアイコンをクリックするにはclickという命令を使います。下記のように開発環境に書いてみましょう。
カッコの中にはクリックする要素を画像で指定します。開発環境のカーソルをカッコ内に移動してから開発画面の「スクリーンショットを撮る」ボタンをクリックします。
するとPC画面上をドラッグできるようになるので、ブラウザアイコンを囲むように指定します。
スクショが完了するとclick命令のカッコ内に画像が入ります。これでブラウザアイコンのクリック処理は完了です。
続いてブラウザの検索欄も同様にclick命令を使ってクリックします。スクショのときに赤い点線が交差する点を検索欄と重なるようにします。交差点を実際にクリックすることになります。
キーワードを入力する方法はいくつかありますが、今回はpaste命令を使います。カッコ内にはペーストしたい文字列を入れます。これで検索欄にテキスト入力できました。
最後にEnterキーを押すにはtype命令を使います。カッコ内には押すキーを指定します。今回はEnterキーを表すKey.ENTERを指定します。
以上でキーワード検索の自動化プログラムを書けました。開発環境の実行ボタンを押して自動化を体験してみてください。
他にもSikuliXを使ったチュートリアルを用意しています。興味がある方はチャレンジしてみてください。
【初心者向け】SikuliXを入れたらまずやるべきチュートリアル5選
まとめ
SikuliX 2.0.Xの変更点・追加機能やインストール方法、基本的な使い方について解説しました。
SikuliX 2.0.Xでの注目すべき変更点はやはりOCR機能の強化でしょう。OCRエンジンがバージョンアップしたことにより、認識精度の向上が見込めます。
開発環境についてはそれほど変更点はなかったように思えます。将来的には操作を記録するレコーダー機能の搭載を予定しているようです。
本記事を通してSikuliXを初めて触ったという方がいれば、ぜひ小さなことから自動化を試してみてください。ルーティンワークをSikuliXが代行してくれれば業務はもっと楽になります。本ブログではSikuliXの操作方法についても解説しているので他の記事も読んでみてください。