どうもお久しぶりです。シタテルの朝野です。
突然ですがRPAってご存知でしょうか?私は数週間前にまともに知りました🙄
"Robotic Process Automation" の略で、PC上での作業をソフトウェアロボットが行うよう自動化することです。
現在私のいるDevOpsチームでは単純な作業を自動化して時間と手間を節約できないかという取り組みを少しずつ進めています。
そんな中でRPAというものの存在を知り、簡単に無償で導入できるものを試してみたので、サンプルと共に紹介します。
今回やってみたサンプルは、シタテルの「マイアトリエ」をブラウザで開いてログインするというものです。
(※サンプル内のメールアドレスとパスワードはダミーの値です)
Javascript for Automation
MacOS Yosemite以降で使用可能なスクリプト言語です。
サンプルコードはこのようになります。
const DELAY = 3;
const Chrome = Application("Google Chrome");
const window = Chrome.windows[0];
const tab = Chrome.Tab({
url: 'https:
});
window.tabs.push(tab);
delay(DELAY);
inputText(tab, 'email', 'sample@sitateru.sample');
inputText(tab, 'password', 'sample_password');
submit(tab);
function inputText(tab, elementId, value) {
tab.execute({ javascript: "document.getElementById('" + elementId + "').value =`" + value + "`;" });
}
function submit(tab) {
tab.execute({ javascript: "document.forms[0].submit();" });
}
ブラウザ上での入力やクリックはjavascriptをブラウザ内で走らせることで行っています。
実行はコマンドで $ osascript -l JavaScript sample.js
と打つだけです。
JavaScriptを書いてコマンド実行なので、RPAわからんけどJavaScriptチョットワカル!という私のような者にはありがたいです。
エンジニアで使う分にはハードルが低いと思うのですが、ノンプログラマーやMac使わない人がいると導入しにくそうなのが難点でしょうか。
SikuliX
http://sikulix.com/
JavaがあればWindowsでもMacでもLinuxでも使えるOSSのRPAアプリケーションです。
IDEを立ち上げて自動化プログラムを作成・実行します。
サンプルコード(コードと言っていいのかわかりませんが)はこのようになります。

自動化したい操作をスクリプトににしてIDE上で書いていきますが、マウスポチポチでもある程度作れるのでノンプログラマーにもいくぶんとっつきやすそうです。
画像処理で有名なOpenCVを使って作られているらしく、操作対象の認識を「デスクトップ画面の中で対象の画像を抽出する」ことで実現しています。
(サンプルコードの click()
のカッコ内にあるのは操作したい要素のスクリーンショットなのです)
画面上の文字を認識するOCR機能も一応あるのですが試してみたところ精度が怪しく実用には難しいなという印象でした。
機能面はやや物足りない感触でしたが、OSをまたいで使えることと導入の難易度が低そうなのはメリットですね。
UiPath
https://www.uipath.com/ja/
こちらもIDEで作成・実行するタイプで、GUIでフローチャートを組み立てたりブラウザ操作を自動で読み取って操作を記録したりと、基本シェアウェアだけあって操作感や機能は充実しています。(そのぶん見た目は複雑なので最初は少し戸惑うかも)
個人や中小企業はCommunity Editionという無料版が使えますが、ある程度以上の規模の企業で使う場合は有料になるようです。
https://www.uipath.com/ja/freetrial-or-community
サンプルコード(これもコードと言っていいのかわかりませんが)はこのようになります。

作業の流れがグラフィカルに表示されるので大掛かりなようにも見えますが、Webページ上の要素を選択して操作しているというのは同じですね。
公式コミュニティがあるほかハンズオンセミナーなども開かれているようで、費用面とWindowsのみという点が問題なければ有力な候補になりそうだと思います。
というわけで、今回は無料で使えるRPAを簡単にお試ししてみました。
こういったRPAは使いようで色々な作業の手間を省けそうな予感がしているので、できることを把握してうまく活用していきたいですね。
この記事がRPAに手を出してみる取っ掛かりになれば嬉しいです🤗