マウス操作を自動化する
以前の記事で取り上げたように、Automation Anywhere A2019 でマウス操作を自動化する
簡単な方法はレコーディングです。
しかし、対象アプリケーションによっては、レコーディング後に設定の調整が必要になる場合や、
レコーディングではそもそも期待通りに操作を記録できない場合があります。
今回の記事では、対象アプリケーションに適した方法を選択できるよう、
Automation Anywhere A2019 が用意している 3 つの自動化アプローチと、
その使い分けや設定時の Tips を取り上げます。
※本記事は、Automation Anywhere A2019.13(ビルドバージョン 4701/4705)時点での情報です。
※本記事で紹介する Automation Anywhere 社製品ドキュメントページを参照する際、
最新の正確な情報を確認するには、言語表記を英語にしてください。
□目次
1. 操作位置の認識方法
Automation Anywhere は、マウス操作の位置を認識するためのアプローチとして、
次の 3 つを提供しています。
- オブジェクト認識
[レコーダー]パッケージで使用されている認識方法です。
HTML 等のようなアプリケーション自体が持っているタグ情報を読み取り、
ボタンやテキストボックスといったオブジェクト単位で操作対象を認識します。
レコーディングを行うとこの方法でアクションが記録され、最も信頼性の高い認識方法です。
しかし、次の図のようにウィンドウ全体しかフォーカスできず、対象オブジェクトを認識できない
アプリケーションに対しては、他の 2 つのアプローチを検討する必要があります。 - 画像認識
[Image Recognition]パッケージで使用されている認識方法です。
操作対象の位置を、画像情報によって認識します。
これにより、対象アプリケーションのタグ情報を読み取れない場合でも、操作位置を特定できます。
通常のレコーディング操作をしながら画像認識で操作を記録できる
AI Sense レコーダー という機能もありますが、
現段階ではまだ機能が十分ではないことから、今回の記事では取り上げません。
- 座標認識
[マウス]パッケージで使用されている認識方法です。
操作対象の位置を、スクリーンやアプリケーションウィンドウ上の x, y 座標で認識します。
これにより、アプリケーションのタグ情報を読み取れないだけでなく、
操作対象の画像情報が動的であるといった場合でも操作位置を特定できます。
ただし、操作対象オブジェクトを認識しているのではないため、
Bot 実行時に操作誤りが最も発生しやすい認識方法です。
各方法を使用する際の Tips を以下で取り上げます。
2. オブジェクト認識 ~レコーダー パッケージ
レコーディングを行うと、自動的に[レコーダー]パッケージ > [キャプチャ]アクションとして
記録されます。
アクションの詳細を見ると、操作したオブジェクトのプロパティ(タグ情報)が
自動的に読み取られていることが分かります。
Bot 実行時には、プロパティのうちチェックが入っている項目を利用して、オブジェクトが探索されます。
この図のように、プロパティの値には 変数 を設定することもできます。
【参考】[レコーダー]パッケージ自体の詳細な説明については、下記を参照してください。
Automation Anywhere 社製品ドキュメントページ『Universal Recorder overview』
Automation Anywhere 社製品ドキュメントページ『Recorder package』
TIPS
プロパティの値が動的に変わるアプリケーションの場合も、次の方法で対応できる可能性があります。
- 動的な項目のチェックを外す
例えば、表示される位置が頻繁に変わる場合には、
[Path]のようなインデックス値を使用する項目のチェックを外し、
[ID]や[Name]のような不変で一意に識別できる値の項目のみを使用します。 - 動的な項目で変数やワイルドカードを使用する
一意的な識別子([ID]など)も動的に変わってしまう場合は、
上の図のように変数化して都度 データソースから読み込んだり 、
ワイルドカード(※)によって任意の文字列を許容したりする方法が考えられます。
※アスタリスク(*)を使用することで、0 字以上の任意の文字列を表せます。
意図しないオブジェクトを誤って認識してしまうリスクを考慮する必要があります。
例:「txtUserName_1fr03e4i1 」の斜体部分がランダムな値になる場合→「txtUserName_*」
3. 画像認識 ~Image Recognition パッケージ
[Image Recognition]パッケージには 2 つのアクションがあります。
- ウィンドウで画像を検索(Find image in window)
ターゲットの画像ファイルと同じイメージを、アプリケーションウィンドウ上で検索します。 - ウィンドウでウィンドウを検索(Find window in window)
ターゲットウィンドウにおける任意の領域のスクリーンショットと同じイメージを、
別のアプリケーションウィンドウ上で検索します。
【参考】[Image Recognition]パッケージ自体の詳細な説明については、下記を参照してください。
Automation Anywhere 社製品ドキュメントページ『Image Recognition package』
実際のところ、どちらのアクションもマウス操作の自動化に使用できるようです。
①どのアプリケーションウィンドウ上の ②どの座標範囲で ③ターゲットのイメージ
を探索するか設定します。
[ウィンドウで画像を検索]は③で設定する画像ファイルを予め用意しておく必要がありますが、
[ウィンドウでウィンドウを検索]は③の設定の中でスクリーンショットをキャプチャできます。
TIPS
Bot 実行時にイメージが見つからないエラーが発生する場合、次の点を確認すると良いかもしれません。
- ターゲットのイメージが、操作前の状態のものであること
例えば、操作対象であるボタンはクリックすると色が変わる、枠線や影が入るといった場合、
このクリック後のイメージをターゲットとして使用すると、クリック前のボタンを見つけられません。 - ターゲットのイメージに、余分な箇所が含まれていないこと
例えば、操作対象であるボタンのイメージにボタン外側の背景も含まれているといった場合は、
ボタン自体ではなく背景側の表示が変わっただけで見つけられなくなることがあります。 - Bot 実行時に、ターゲットのイメージと同じピクセルサイズで表示されていること
アプリケーションウィンドウやスクリーンのサイズに応じてオブジェクト自体の表示サイズや縦横比も変わる場合、これが原因でターゲットのイメージと一致していない可能性があります。
4. 座標認識 ~マウス パッケージ
[マウス]>[クリック]アクションでは、下図のように
①スクリーン全体または対象アプリケーションウィンドウ上の ②どの座標位置に対して
マウス操作を行うか設定できます。
【参考】[マウス]パッケージ自体の詳細な説明については、下記を参照してください。
Automation Anywhere 社製品ドキュメントページ『Mouse package』
TIPS
Bot をより正確に動作させるには、次の点を注意すると良いかもしれません。
- アプリケーションウィンドウに対する座標位置を使用する
上図の①でスクリーン全体に対する座標位置を指定した場合、
Bot 実行デバイスのスクリーンサイズが変わった際に、意図しない位置を操作する可能性があります。
アプリケーションウィンドウに対する座標位置を指定することが推奨されています。 - キーストロークのシミュレーション アクションで代用する
対象アプリケーションが[TAB]キーによるフォーカス移動に対応しているようであれば、
[キーストロークのシミュレーション]パッケージ > [キーストロークのシミュレーション]アクションで[TAB][ENTER]押下をエミュレートする方が、正確に動作する可能性があります。
5. おわりに
本記事では、Automation Anywhere においてマウス操作を自動化するためのアプローチをまとめました。
各パッケージの詳細は、記事の中で紹介されている製品ドキュメントでも確認できますが、
今後 Engineer Voice でも取り上げていきます。
対象アプリケーションに合わせて、最も安定して稼働できる Bot を作成してみてください。
他のおすすめ記事はこちら
著者紹介
SB C&S株式会社
C&S Engineer Voice運営事務局
最新の技術情報をお届けします!