WinActor を代表する機能の一つ、それが画像マッチングです。
画像を認識してボタンをクリック・ダブルクリックしたり、単に画面の状態をチェック(状態チェック)するときにも使われる非常に便利でシナリオの中でも多用する機能です。
ただ、非常に便利な反面、画像マッチングは他の機能・ノードと比較してエラーが出やすい機能であるのも特徴です。
▼この記事でわかること
- 画像マッチングを使っているがときどきエラーが出る。
- 画像マッチングのエラーにはどんな傾向があるか。
- 他のノードと組み合わせることでエラーを回避できないか。
- 画像マッチングを実際にどのように導入しているか気になる。
指定時間待機を使う
画像マッチングがうまくいかない、エラーが頻発するときにまずお試しいただきたいのは「指定時間待機」と呼ばれるノードになります。
皆さんもすでにご存じのノードかと思いますが、指定時間待機は改めてどういった機能かを説明すると、文字通り指定の時間を待つというシンプルな機能になります。
個人的には普段シナリオを作るときにはあまり使用しないノードにはなるのですが、指定時間待機を画像マッチングの前に置くことによって、エラー頻度が格段に下がります。
具体的に何秒くらいを待機時間として設定しておけば良いかについては、これはシナリオにもよるのですが、おおよそ30秒~60秒を置けばかなり効果的です。
もちろんそれ以上を待機時間として設定するのもアリだとは思いますが、個人的にはシナリオはコンパクトにしたいため、最低限の待機時間を設定するのをおすすめしたいと思います。
ちなみに当ブログで最もアクセスの多い記事、対象のアクティブ化に失敗しましたエラーが頻発するときにも、指定時間待機を使用するようにおすすめしています。
▼指定時間待機を使うデメリット
- あまり効率の良い方法とはいえない。
- シナリオ全体の時間が多くかかる。
指定時間待機を使用するときのデメリットとしては、シナリオ全体の効率悪化が挙げられます。
画像マッチングが本来の機能どおりに動けば、指定時間待機が不要になるので、30秒、60秒といった固定的な時間を省略することができます。
あるいは、画像マッチングエラーを解消方法のもう1つの方法として後ほど説明する「読み込み完了待ち」を使用すると、読み込み完了から次の作業までスムーズに移行することができ、シナリオ全体にかかる時間も、指定時間待機よりも効率化することができます。
ただ、今現在の時点では、最も正しく機能し、エラーが出ずに済むのは、「指定時間待機」+「画像マッチング」の組み合わせであることは間違いないので、効率よりも正確性を重視したいという方は、指定時間待機を置くことをおすすめします。
読み込み完了待ちを使う
「読み込み完了待ち」を使用することでも画像マッチングエラーの解消できます。
正確にいうとこの機能は「IE操作(読込完了待ち)」という名称なのですが、これを画像マッチングの前に置くことで、読込エラーや読込に時間がかかっている場合に発生する画像マッチングの空振りを回避することができます。
▼読み込み完了待ちを使うメリット
- 指定時間待機とは対照的に、読み込み完了すれば次の工程に行くので、シナリオを効率化できる。
設定方法も簡単で、ノードを画像マッチングの前に置くだけなので使いやすいものではあるのですが、読み込み完了待ちを画像マッチングのエラー回避する方法として使用するのはあまりおすすめできません。
理由としては、WinActor を動かしているPCの環境によって、読み込みにかなり時間かかったり、読み込み完了して、いざ画像マッチングに行ってもエラーが出てしまうというのが頻繁にあります。
一言でいうと、読み込み完了待ちと画像マッチングの組み合わせは、安定感に欠けます。
▼読み込み完了待ちを使うデメリット
- 読み込み完了して画像マッチングしても、エラーが出るときがある。
- IEブラウザでしか使えない。
マッチ率を落としてみる
最後に紹介させていただく方法は、画像マッチングのマッチ率を下げるという方法になります。
画像マッチングの初期値は100%になっていますが、マッチ率を100%に近い数値で設定していると、文字通り100%正確な画像を認識しようとするあまり、かえってエラーが出やすくなることがあります。
僕もWinActor を始めたてのころは、「画像マッチングなのだからマッチ率が高いに越したことはないだろう」と思っていて、常時100%で設定していました。
ただそれだとやはりエラーが頻発することになったことから、画像マッチングはややアバウトにすると良い(先輩からのアドバイス)と気づき、今では常時90%で設定しています。
もし画像マッチングのマッチ率を100%に近い形で設定しているという方は、こちらも併せて確認し、一度試してみることをおすすめします。
マッチ率をデフォルトで90%にする方法とかないかなぁ…。
コメント