sikuliを使って困った点と解決法
最近 sikuli がすごく面白い。
http://www.sikuli.org/
MITのUI学科が作った画面操作マクロツールで、
エディタの未来感もあってすげー面白い
sikuliの特徴
- Javaによるクロスプラットフォーム対応(Windows,Mac,Linux対応)
- OpenCVを使った画面上の類似画像検索
- MIT Licence (商用利用も改造も自由)
- Jython(2.5.4rc1)を使った自由度の高いスクリプティング
- Jenkinsに連携してGUIテストの自動化も出来る
いくつかの類似のGUIマクロツールと比較しても、
これほど応用が効きそうなツールは見当たらなかった。
こりゃ覚えるっきゃないね!
しかしメリケン製のプログラムらしく、
キッチリ利用するには幾つか乗り越えるべき課題が…
最優先で乗り越えるべき課題
- うまく画像を認識しない
- 日本語の扱いに難がある
まずはこれらの問題を解決したい。
うまく日本語を扱うには?
この日本語の扱いが下手くそなのは
スクリプト基板に使っている Jython( Python ) に起因する問題だ。
つまりPythonでの日本語処理時と同様の対策が必要で、
普通の文字列ではなく、unicode文字列にしてからAPI関数に渡さなければならない。
#↓文字化けするリテラル文字 type("こんにちわ") #↓文字化けしないリテラル文字 type(u"こんにちわ") #変数xに入った文字列をutf-8だと仮定して unicode文字列に変換する type( unicode(x, "utf-8" )) #cp932(shift-jisのMS拡張)と仮定して変換する場合 type( unicode(x, "cp932" ))
リテラルの頭には u をつけて、
動的に変換する場合はエンコードを指定してunicode関数を通せばいいのだ。
これは普通のPythonでも絶対にハマるポイントなので
十分に把握した上でsikuliを楽しもう