皆さんは巷で流行りのRPAをご存知でしょうか。RPA(Robotics Process Automation)とは、主にPC上の操作(クリックやキーボード入力)を自動化してしまおうというもので、人の手を離れてロボットが勝手に操作してくれる夢のようなツールです。
RPAに利用できるツールには様々なものがありますが、今回SikuliXというオープンソースの自動化ツールを使用しました。
SikuliXはJavaで作られていて、jarファイルで公開されています。OpenCVの画像認識によりクリック位置を特定します。
このRPAツールで何をするかというと、ドミノ・ピザの自動発注です。
では、作ったスクリプトの実行結果を動画に収めたので見てみましょう。人が操作しているように見えますが、最初の実行ボタン以降、全自動です。
最後は注文確定画面であとは、ボタンを押すだけで発注完了です。もちろん最後のボタンを押す部分も自動化可能です。
作ったスクリプトはこちら。わずか50行ほどですし、click()とtype()とpaste()とwait()とsleep()しか使っていません。
ポイントは、クリックする箇所を画像で指定しているところです。実行の際はデスクトップ上で画像と同じ場所を探してクリックするので、位置がずれていても大丈夫です。ブラウザは起動時に開く位置が異なるため、この方式は扱いやすいと思います。
SikuliXの入手先
https://raiman.github.io/SikuliX1/downloads.html
- Download the ready to use sikulix.jar (SikuliX IDE)
- The Jython interpreter 2.7.1 for python scripting (the default)
- The JRuby interpreter 9.x for ruby scripting
Versionは1.1.4を使用しました。上記のリンク先からsikulix.jar、jython-standalone-2.7.1.jar、jruby-complete-9.2.0.0.jarをダウンロードし、同じフォルダに格納し、sikulix.jarをダブルクリックします。(Javaのバージョンが古い場合は最新化します)
リファレンス
https://sikulix-2014.readthedocs.io/en/latest/index.html
特に特殊キー(CTRLやTABなど)の入力で、Keyについて書かれたページはよく参照しました。