Batasan Blog

人類みな五十歩百歩

キーボード操作をRPA

クラウドパソコンにSikulixを入れてRPAで遊んでいるのだが、Sikulixの基本コンセプトは画像マッチングである。あらかじめ保存してい置いたボタンやフィールドやメッセージを画像に保存しておいて、マッチしたらどうする、とロジックを記述していくのがRPAだ。
しかしやってみるとこれが意外に遅い。画面上から該当する画像と一致するところを検索するので、まあそれなりの処理なので仕方ないともいえる。そうするとやはりスクリプトでやれるところはスクリプトでやる、キーボード操作でやれるところはキーボードでやる、という考えが必要になってくる。スクリプトにするのは、メールやLINEでRPAから通知する方法を以前紹介した。
普段からマウス中心の操作をしている人がRPAをコーディングすると、マウス操作中心になりがちだが、Windowsは意外にキーボードだけでもかなり操作できるのを知っておくと便利だし、RPAも効率が良くなる。

  1. Altキー系 : ウィンドウサイズ変更など
  2. WinKey系 : Windows標準のショートカットキー
  3. Functionキー系: Shift + F10など。 マウスの右ボタンメニューの代わり
  4. Tabキー系 : フィールド、ブラウザのリンク間の移動など

Sikulixで実際にやってみると、pythonのtype()関数中心のコーディングになるのだが、実行段階では微調整がかなり必要なことも分かってきた。アプリが起動したりメニューを変遷した後に、次にキーを受け付けるようになるまで結構時間がかかるのだ。もちろん長くて数秒だが、RPAが間髪入れずにtype()を実行してしまうと、たいていエラーになってしまう。しかも当然ながらマシンの性能や負荷ぐあいによってその時間は変わってくる。type()関数でキー入力した後、かならず一定時間waitする関数を作って、実行時のぐあいによってその待ち時間を微調整したりしているのだが、長時間実行していると、それでも時間があわずにエラーになったりする。このあたりはコマンドライン系の今までのプログラムにはなかった苦労点といえるだろう。