sikulixを使ってみた
SikuliXとは
画像認識を利用した、GUI操作自動化ツールです。開発環境であるIDEも付属しています。
検証環境
- windows 8.1 Enterprise
- Sikuli 1.1.2
- JRE 1.8.0_151
SikuliXのインストール
1. JREのインストール
SikuliXを利用するためには、JREが必要なので事前にインストールしておいてください。
2. SikuliX 1.1.2のダウンロード
公式サイトにアクセスし、sikulixsetup-1.1.2.jarをダウンロードします。
3. SikuliXのインストールフォルダの作成
ローカルに任意のインストールフォルダを作成します。
※ コマンドはpowershellベースです。
$ pwd
C:\User
$ mkdir sikulix_1.1.2
$ cd sikulix_1.1.2
$ pwd
C:\User\sikulix_1.1.2
作成したフォルダに、手順2でダウンロードをしたjarファイルを配置します。
4. SikuliXのインストール
手順3で配置した、jarファイルをダブルクリックします。以下の画面が出現するのではいを選択します。
インストールオプションを選択し、Setup Nowをクリックします。基本は、1-Pack1で利用する言語(PythonまたはRuby)を選択しておけば問題ありません。
以下の画面が表示されたら、はいをクリックします。
以下の画面でも、はいをクリックします。
インストールの終了を待ちます。
以下の画面が出たら、インストール完了です。
5. 動作確認
インストールフォルダに作成されたファイルを確認します。runsikulix.cmdを実行します
$ pwd
C:\User\sikulix_1.1.2
$ ls
ディレクトリ: C:\Users\sikulix_1.1.2
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 2018/08/15 17:20 2413 runsikulix.cmd
-a---- 2018/08/15 17:22 7831 SikuliX-1.1.2-SetupLog.txt
-a---- 2018/08/15 17:20 56759043 sikulix.jar
-a---- 2018/08/15 15:10 7853022 sikulixsetup-1.1.2.jar
$
以下のIDEが起動すれば、動作確認終了です。
SikuliXでIEを操作して、qiitaでいいねとストックを押してみた。
今回は、Sikulixを利用してqiitaでいいねとストックを押す動作を自動化してみました。デモに用いる記事は、私が過去に投稿したGo言語のインストール方法 Windows10環境を宣伝を兼ねて使います笑
1. IDEを起動し、[ファイル] > [新規作成]で新しいスクリプトファイルを作成します。
2. スクリプトを記述します。
# winキー + rキー
type("r", Key.WIN)
# IEの起動
paste("C:\\Program Files\\Internet Explorer\\iexplore.exe")
sleep 1
type("\n")
# IEが起動して、Googleのロゴが表示されるまで待つ
wait("1534322999272.png", 30)
# アドレスバーにフォーカス
type("e", Key.CTRL)
sleep 1
# URLを書き換え、アクセス
type("a", Key.CTRL)
sleep 1
paste("https:\/\/qiita.com\/onionsoldier06\/items\/dfd5297fa32e17c457c0")
sleep 1
type("\n")
# ページにアクセスして、ユーザ名が表示されるまで待つ
wait("1534323439312.png", 30)
sleep 1
# いいねのクリック
click("1534323475276.png")
sleep 1
# ストックのクリック
click("1534323498331.png")
sleep 1
IDEは以下のように表示されます。
Tips
画像をファイル名で指定することも出来ますが、IDEの左側にある以下の部分をクリックすると、画面キャプチャで画像をプログラムに認識させることが可能です。(詳しくは実際に使ってみてください。)
3. スクリプトの実行
IDEの上にある、実行ボタンをクリックします。私の環境では無事動作しました。
※環境によっては、微調整が必要かもしれません。
所感
簡単で直感的な記述でGUI操作が自動化できるので、とても便利であった。画像認識の精度やクリック位置などを微調整でき、RubyやPythonの文法がつかえるので、いろいろなことが実現可能である。