Cloud9のバックグラウンドでSikuliXを使用する

SikuliX(以前のSikuli)は、視覚認識(写真)を使用して画面に表示されるものを自動化できるツールです。 ハブにはすでに十分な情報がありますが、すべての例では実際の画面を使用しています。

ここでは、Cloud IDE Cloud9のバックグラウンドでSikuliXを使用した経験について説明します。 このツールを使って作業する過程で、いくつかのコーンを手に入れたので、私の経験が誰かに役立つかもしれません。

SikuliXの使用には多くのオプションがありますが、自動化できるアクションの一部を次に示します。

私の場合、Flashサイトでの日常的な作業を自動化し、ログインし、ドロップダウンリストで特定の項目を選択して、いくつかのボタンをクリックする必要がありました。 1日に数回、1〜3分かかりました。 SikuliXを使用した後、これは簡単なスクリプトを実行することで実行でき、より便利なことに自由な時間を費やすことができます(たとえば、英語を学ぶ)。

依存関係のインストール


SikuliXは、OpenCV(コンピュータービジョン)やTesseract(テキスト認識)などのツールに依存しています。 したがって、それらをインストールします。 OpenCVから始めましょう。

OpenCVのインストールはそれほど簡単ではなかったため、 このスクリプトを使用して必要なものすべてをインストールおよびビルドしました。 クローンを作成し、実行権限を付与して実行します。

git clone git@gist.github.com:3d1fce8dae65e765f7c4.git cd 3d1fce8dae65e765f7c4 chmod +x install-opencv-2.4.11-in-ubuntu.sh ./install-opencv-2.4.11-in-ubuntu.sh 

OpenCVをインストールすると、cloud9が無料モードで提供するほとんどすべてのリソースが「使い果たされ」ます。 有料プランでは簡単になりますが、私が持っているもので十分でした。 ビルドプロセスは2.15時間でしたが、この時点で独自の作業を行うことができ、問題はないはずです。 インストール後、3d1fce8dae65e765f7c4フォルダーを削除できます(ほとんどすべてのメモリーが解放されます)。

Tesseractのインストールは簡単です:

 sudo apt-get install tesseract-ocr 

SikuliX自体をインストールするには、実際の画面が必要です(Javaの制限)。 ソリューションは、X11の発売でした。 必要なコンポーネントを提供するために、 このスクリプトを使用できます。 構成には、スーパーバイザー、xvfb、fluxbox、x11vncが含まれます。 実行するには、ファイルrun.shとSupervisord.confをルートに転送するか、ファイルrun.shのSupervisord.confへのパスを修正します。

 git clone git@github.com:fjakobs/cloud9-vnc.git cd cloud9-vnc/ ./install.sh ./run.sh 

すべてがうまくいった場合、run.shを実行した後、ターミナルはリンクを提供します。 ブラウザでそれを見てみましょう。 your-workspace / vnc.htmlのようなもの。 そこで、「接続」をクリックして、fluxboxウィンドウマネージャに入ります。

画像

SikuliXをインストールする


インストールには、SikuliX 1.1.1が必要です(上記のバージョンを試したことはありません)。バージョン1.1.0には、sikuliをバックグラウンドで実行できないバグがあったためです。 ここで sikulixsetupをダウンロードする必要があります

fluxboxでターミナルを開き、ダウンロードしたファイルを実行してインストールします。 私はこれを持っていました:

 java -jar sikulixsetup-1.1.1-20151126.001204-18-forsetup.jar 

SikuliXインストールオプションが表示されたウィンドウが開きます。

画像

画像

SikuliX IDEを含むsikulix.jarをインストールする最初のオプションを選択しました。 IDEを開かなくても、そこに記述されたスクリプトをターミナルで実行できます。 サブアイテムとして、Pythonを選択しました。 必要に応じて、異なるインストールオプションを選択できます。

Jythonのインストール段階では、Jython 2.7.0のインストールに問題がある可能性があります(スクリプトが開始されなかっただけでした)。 したがって、「NO」ボタンをクリックしてJython 2.5.4rc1をインストールすることをお勧めします。

すべてがうまくいった場合、次のようなポップアップウィンドウが表示されます。

画像

Sikuli IDEを起動します


これでIDEを実行できます。 その中で、スクリプトを作成してデバッグし、バックグラウンドでさらに起動できるようにします。

 java -jar sikulix.jar 

画像


たとえば、「猫の放牧方法」というクエリでhabrがGoogleの検索の上位にあるかどうかを確認する簡単なスクリプトを作成してみましょう。 ユーザーログを有効にして、アクションをファイルに書き込みます。

画像

スクリプトが作成され、デバッグされました。

デバッグ中に、次のようないくつかのエラーが端末とログに注がれました。

[error] command 'wmctrl' is not executable

command 'xdotool' is not executable

Failed to initialize libdc1394


エラーは重大ではなく、単純に無視できます。

視覚的なデバッグの後、fluxboxを閉じてIDE Cloud9ターミナルに移動できます。

Xvfb (X仮想フレームバッファー)は、スクリプトをバックグラウンドで実行するのに役立ちます。 これは、メモリ内のすべてのグラフィック操作を実行する仮想Xサーバーです。 ここで読むことができます 。 仮想画面のパラメーター、保存されたプロジェクトへのパス、ログファイルの名前を書き込み、実行を試みます。

 xvfb-run --server-num=10 --server-args="-screen 0 1280x864x16" ./runsikulix -r project.sikuli/ -f SikuliLog.txt 


画像

すべてが順調に進んだ場合、ログファイルで「成功。 HabrahabrはGoogleの最初のページにあります。」 利益

次は何ですか:


その後、小さなAPIを記述して、たとえば稼働中のコンピューターのコンソールからスクリプト/自動テストを実行できます。

ソース:


プロジェクトの公式サイト。

Source: https://habr.com/ru/post/J275717/


All Articles