【Automation Anywhere 11】レコーダー毎のウィンドウ操作に関するクセ (Smart Recorder、Web Recorder、Screen Recorder)

Automation Anywhere v11には、「Smart Recorder」「Web Recorder」「Screen Recorder」の3種類のレコーダーがついています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/479715/66e26570-9b96-6408-b094-1627872bc8de.png)
この中で、Web RecorderとSmart Recorderは座標や画像認識にとどまらない、より精度の高い画面操作が可能なのですが、それを実現するために、実行中のウィンドウ操作にクセがあります。画面がちらつくように見えることもありますが、正常な動作のようですのでメモしておきます。

**対象バージョン**

* Automation Anywhere Enterprise 11.3.3

また、@Okura_ さんが『[【Automation Anywhere】Web操作でどちらを使う? Object Cloningコマンド vs Web Recorderコマンド](https://qiita.com/Okura_/items/b8e0e65a9c8b86eb4716) 』という記事を書いていますので、これも参考になります。
>ちなみに、ロボットを実行するときは、特に前回実行してそのままになっているブラウザーやメモ帳などのほかのアプリケーションはすべて終了することをお勧めします。動作が干渉することがあります。


# 操作例題1: RPA Demo Webページの操作

Automation Anywhereが提供しているデモ用のWebサイト『RPA Demo』(https://rpademo.automationanywhere.com) 上で3つのレコーダーで同じ操作を試してみましょう。

### やること
以下のページで **"Username"** のところに "abcde" と入力します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/479715/43d77247-9b20-3e35-8646-61ee714f3d58.png)


### Smart Recorder (Object Cloning) の場合
記録としては2行目が自動生成されます。(1行目はInternet Explorerで該当ページを開くために別途追加しています。) Object Cloningコマンドでusernameフィールドに文字列を追加する操作が追加されました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/479715/18b82a02-de48-80e8-b19a-45d8d9815b86.png)

Object Cloningコマンドを実行すると、ウィンドウサイズが3回変更されます。:one:Web RecorderのOpen Browserコマンドでブラウザーを起動させたとき、最大化の状態。:two:Object Cloningコマンドが開始したとき、最大化が解かれます。:three:Object Cloningコマンドで文字を入力するとき、記録した場所と同じ場所にウィンドウが移動します。
操作の精度を高めるために、Object Cloningコマンドでは記録時のウィンドウサイズや位置を再現するようです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/479715/160cb8a3-4852-7b05-ffc0-4840e5168664.png)


### Web Recorder (Manage Web Control) の場合
記録としては2行目が自動生成されます。(1行目はInternet Explorerで該当ページを開くために別途追加しています。) Manage Web Control (Set text) コマンドでusernameフィールドに文字列を追加する操作が追加されました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/479715/23547720-1ed7-49f3-060a-96e5492e24d1.png)
Manage Web Controlコマンドを実行すると、ウィンドウサイズは変更されません。Web RecorderのOpen Browserコマンドでブラウザーを起動させたときの最初に最大化された状態でInternet Explorerが開いたまま、文字入力まで完了します。

### Screen Recorder の場合
記録としては2～4行目が自動生成されます。(1行目はInternet Explorerで該当ページを開くために別途追加しています。) 文字列を入力するためのKeystrokesコマンドのほかに、マウスでフィールドをクリックする際のマウス操作も記録されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/479715/5148180b-0a45-564a-6a9c-49f2fc536fe5.png)
Screen Recorderの場合は、ウィンドウサイズが3回変更されます。:one:Web RecorderのOpen Browserコマンドでブラウザーを起動させたとき、最大化の状態。マウスが動いているときはこの状態です(マウスの座標は絶対値で指定されており、場所が当初とずれています)。:two:Mouse Clickコマンドが開始したとき、最大化が解かれます。:three:Keystrokeコマンドで文字を入力したとき、記録した場所と同じ場所にウィンドウが移動します。
操作の精度を高めるために、Mouse Click/Keystrokeコマンドでは記録時のウィンドウサイズや位置を再現するようです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/479715/160cb8a3-4852-7b05-ffc0-4840e5168664.png)



# 操作例題2: メモ帳の操作

メモ帳を使って、Smart RecorderとScreen Recorderで動作を比較してみましょう。

### やること
メモ帳を起動して「abcde」と入力します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/479715/92b90fa5-5723-6ffc-892c-672ed0cdcefd.png)


### Smart Recorder (Object Cloning) の場合
記録としては2行目が自動生成されます。(1行目はアプリケーション起動のため別途追加しています。) Object Cloningコマンドでメモ帳に文字列を追加する操作が追加されました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/479715/cf89762f-a0cd-f16a-ffc4-14f612566bbb.png)
Object Cloningコマンドを実行すると、やはりウィンドウサイズが1回変更されます。Object Cloningコマンドで文字を入力するとき、記録した場所と同じ場所にウィンドウが移動します。
メモ帳などブラウザー以外のアプリケーションでも、操作の精度を高めるために、Object Cloningコマンドでは記録時のウィンドウサイズや位置を再現するようです。


### Screen Recorder の場合
記録としては2行目が自動生成されます。(1行目はアプリケーション起動のため別途追加しています。) Keystrokeコマンドでメモ帳に文字列を追加する操作が追加されました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/479715/f31d7ef4-101f-f94d-15fd-c303dc5ef733.png)
Mouse Clock/Keystrokesコマンドを実行すると、やはりウィンドウサイズが1回変更されます。記録した場所と同じ場所にウィンドウが移動します。
メモ帳などブラウザー以外のアプリケーションでも、操作の精度を高めるために、記録時のウィンドウサイズや位置を再現するようです。

# まとめ
いくつかのコマンドについては、ウィンドウの扱いにクセがあることがわかりました。これらのコマンドを組み合わせると、ウィンドウのサイズが頻繁に変わり、画面がちらつくことがありますが、正常な動作です。

* **Object Cloningコマンド**: 実行時にウィンドウの最大化を解き、対象ウィンドウを記録時と同じ位置、サイズにする。
* **Mouse Clickコマンド**: 実行時にウィンドウの最大化を解き、対象ウィンドウを記録時と同じ位置、サイズにする。
* **Keystrokesコマンド**: 実行時にウィンドウの最大化を解き、対象ウィンドウを記録時と同じ位置、サイズにする。
* **Open Browserコマンド**: 実行時にウィンドウの最大化を行います。