Sikuli使ってみた。

以前から日頃の定型作業をAppleScriptか何かで自動化したいと企んでいたのだが、マウス操作が必要な作業(画面上のボタンやアイコンをクリックする等)は現行のAppleScriptには組み込めないというので挫折していた。
しかし、今日になってたまたまSikuliというGUIの自動操作を可能にするスクリプト言語を発見した為、ちょっと試してみた。

SikuliはMITで開発されたスクリプト実行環境で、スクリーンショットを撮る事によってGUI上のパーツを認識する事が可能というのが最大の特徴である。例えばOS標準のボタン類に限らず、Webページ上に表示された任意のデザインのボタン等を狙ってクリック動作を行うような事が可能になってしまうのである。
既存のスクリプト言語でも画面上の座標値を指定してクリックさせるような事は可能であったが、Sikuliは画像ベースでGUI上のパーツが認識出来るので、キャプチャ可能なパーツは画面上の何処に置いてあっても叩けるし、同じデザインのパーツが複数画面上に存在する場合であってもそれら全部を叩かせるような操作が可能である。

これがWindows版だけならまだしも、Mac版とLinux版までリリースされているというのだから驚きである。
こんな便利なモノがあるならば、早速使ってみたくなるものではないか。

…とまぁ出だし好調な雰囲気ではあったものの、結論としては‘あと一歩の所で使い物になりませんでした’。
何がダメかと言うと、条件分岐が生じるようなGUI操作。ある条件ではボタンが表示されたりされなかったり、同じ形状のボタンを叩いたとしても正常に処理されたりアラートウインドウが新規に生成されたり、GUIを操作した際に発生するアクションは様々である。
今回試作してみたスクリプトでもif文等を使い込んで色々条件分岐を発生させてみたのだが、どうも条件文中でのTrue/Falseがきちんと処理出来ていないようで、Falseとなるような条件が生じている場合にスクリプトがエラーで止まる(elseに飛べない)。ドキュメント類は一通り目を通してみたのだが、解決策は見付からなかった。


そんなこんなで、ちょっと残念な結果ではあったもののSikuliの今後には期待したいなぁ。
それ以前に、こういう機能Automatorとかに組み込めたら超ハッピースーパーハッピーだと思うんですがAppleさんその辺どうなのよ??

コメントを残す

メールアドレスが公開されることはありません。

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>