この記事ではUiPathの持つ面白い機能の一つである、画像認識について書いていきます。
##処理完了を待つために使う
例えば、Aというページを表示するために平均して数秒が必要だったとします。
この時に何もしないと、ページの表示が終わる前にデータを入力しようとして、誤作動を起こすことが有ります。
解決策として、真っ先に考えるのは数秒を待つ(Delay)事です。もちろん、UiPathでは処理を待つ実装を行うことができます。
下記の場合は、Webページにテキストを入力する処理ですが、入力前(Delay before)に5秒待つ(5,000msを指定)、処理となっています。
悪くは無いのですが読込完了までにはに5秒以上かかるかもしれませんし、逆に早くページが表示された場合は時間の無駄ですよね。
というわけで、この様なケースではページ読込が完了したことが分かる情報をUiPathに認識させることにします。
例えばですが…Webページで有効なのは一般的にfaviconと思われますが、ご自身で有効だと思われるものであれば、何でも構いません。
では、どの様に認識させるかという点になりますが…ここで有効なのは、Find Image
または、Wait Image Vanish
です。
意味はそのままで、Find Image
は対象の画像を探す。Wait Image Vanish
はその逆で、検索対象の画像が消えるのを待つ処理になります。
どちらも、待ち時間の間に画像が表示される(または消える)事が確認できたら、次の処理に進みます。
タイムアウトの時間はデフォルトで30,000ms(30秒)ですが、TimeoutMSで変更は可能です。条件に当てはまらなかった場合は、例外をThrowします。必要に応じてcatchすると良いかと思います。また、画像の認識にはAccuracyというプロパティで精度が設定できます。これは、1を完全一致として0.1~1までの間で設定できます。デフォルトは0.8なので、これも必要性に応じて上げ下げしましょう。
##リモートデスクトップ等、他のマシンの処理を実行するために使う
前回はセレクタについて書いてみました。癖のある記述ではありますが、誤作動を防ぐためにとても重要ですね。
ところが、このセレクタにも弱点があります。それは、リモートデスクトップ等で繋いだ他のマシンはセレクタでは認識出来ない、という点です。(ディスプレイ情報が転送されているだけですので、当たり前と言えばそれまでですが…)
というわけで、ここでも画像認識が活躍する事になります。
この様なケースで便利なのが、Recording
のCitrix
です。
では早速、使っていきましょう。まずは、基本のクリックから。
何かの画像をクリックするには、Click Imageを使っていきます。
クリックしたい画像を範囲で選択して、save&exitで下記の様なシーケンスが自動で出来上がります。
ここで、一つ注意点があります。クリックをするアイコンについては余白を含めない様にしましょう。
Windowsでは下記の様に、クリックされているアイコンは背景色が変わるので、余白を含めてしまうと正しく画像を認識してくれないことが有ります。
次回はOCRについて書いてみたいと思います…