RPA開発初心者の方が、よく悩まれるケースとして、本番運用の初回稼働は正常に動作できているのに、2回目以降が上手くいかないケースが多い、もしくはロボットが上手く動作するときと動作しない時があって、安定しないということはあるではないでしょうか。
初回稼働が上手くいったということは設定が正しくされているはずなのに不安定な挙動で何が悪いのかお困りのこともあるかと思います。
そこで、本コンテンツではUiPathの中でも使用頻度の高い「アプリ/Webレコーダー」アクティビティで発生しやすい挙動の不安定さの解消方法をご紹介いたします。
目次
「セレクター」機能を安定させるためのTips
設定した動作が安定しない?安定させる方法を紹介します
課題
UiPathのブラウザ操作では、特定のフィールドに対して入力が不安定になってしまうことがあります。
次のフェーズでは、このような設定した動作が安定しない原因を解説します。
原因
この事例の原因は、あいまいセレクターを使用すると動作が不安定になってしまうためです。
あいまいセレクターでは、タグ情報や属性情報と完全一致ではなく、パターンに基づいて識別しています。
そのため、Webページ内の動的な要素や順序が変化する場合、あいまいセレクターだけでは正確な要素の識別が難しくなってしまいます。
次のフェーズでは、設定した動作を安定させる方法をご紹介します。
解決策
このような事例の解決策として、「厳密セレクター」を使用することで解消されることがあります。
タグ情報や属性情報と完全一致ではなく、パターンに基づいて識別しているあいまいセレクターに対して、厳密セレクターではタグ情報や属性情報と完全一致した画面UI要素を操作対象として識別します。
そのため、厳密セレクターで特定のフィールドの位置を指定することで安定して動作をすることができます。
以下で設定方法をご紹介します。
設定方法
- 「アプリケーション/ブラウザを使用」アクティビティの中で「クリック」アクティビティを使用する
- クリック対象を選択後にセレクターを設定する
ターゲット欄の2つのセレクターのうち、今回は厳密セレクターを使用したいため、あいまいセレクターのチェックを外す
「待機」に関するTips
ロボットの処理をスムーズにする方法を紹介します
課題
ロボットの処理と画面の動きが入れ違いになり、操作対象の要素が見つからずエラーになってしまうことがあります。
また、ロボットの処理スピードを調整するために「待機」をいれた際、処理がスムーズに進んだ場合でも待機を行ってしまうため、処理の実行に無駄に時間がかかってしまうという課題もあります。
次のフェーズでは、このようなロボットの処理がスムーズにいかないときの原因を解説します。
原因
ロボットは命令した通りに素早く動きます。
そのため、時間がかかる箇所には十分な待機時間を入れないと、
端末がロボットのスピードに追い付かず、処理と画面の動きが入れ違いになり、操作対象の要素が見つからずエラーになってしまいます。
そのため、何回もロボットを動かしてみて、最大でかかる時間を待機時間として設定することで、端末とロボットの動きがマッチし、安定して動作をするようになります。
しかし、「待機」だけでは処理と処理の間にムラが生まれてしまうことがあります。
「待機」を設定しているが、ネットワークや端末の状態によって処理にかかる時間が変わってしまうことがあるので「待機」を何秒で設定すればよいのか分からない場合というのがそれにあたります。
次のフェーズでは、ロボットの処理をスムーズにする方法をご紹介します。
解決策
このような事例の解決策として、待機の代わりに「要素を探す」を使うことをお勧めします。
「要素を探す」では、画面が遷移した後に表示される要素を探し、要素が検出されるまで待機してくれます。
そのため、ロボットが、処理が終わっていないのに次の処理が始まってしまうことや、待機だけでは処理と処理の間にムラが生まれてしまうということを防いでくれます。
以下で設定方法をご紹介します。
設定方法
- 待機を挿入したい箇所に「要素を探す」を使用し、要素を指定する
- プロパティの設定をする
プロパティを設定することでより詳細な設定をすることができます。
以下で各プロパティについてご紹介します。
- アクティブ化を待つ
このチェックボックスにチェックを入れると、指定したUI要素が表示されるまでアクティビティが待機する。
- 表示されるまで待つ
このチェックボックスにチェックを入れると、指定したUI要素がアクティブになるまでアクティビティが待機する。
- タイムアウト(ミリ秒)
要素が存在しない場合にアクティビティが実行されるまでの待機時間を指定する。既定値は30000ミリ秒(30秒) 。
- 準備完了まで待機
アクションを実行する前に、ターゲットが準備完了になるまで待機する。
次のオプションを選択することができる。
- NONE:ターゲット要素以外の要素の読み込みを待たずにアクションを実行する
- Interactive:ターゲットが読み込まれるまで待機する
- Complete:ターゲットが存在するページのUI要素がすべて読み込まれるまで待機する
「レコーディング中断」に関するTips
レコーディングを中断したい?中断する方法を紹介します
課題
UiPathでブラウザ操作をしていくなかで、マウスオーバーで表示されるボタンやリンクをキャプチャしたい場面がよく発生するかと思います。
クリックしたいのにクリックできないといった課題を抱えている方がいるかと思います。
次のフェーズでは、対象を選択できない原因を解説します。
原因
マウスオーバーで表示されるボタンやリンクは、マウスカーソルを離すとリンクが表示されなくなってしまうため、うまく選択することができません。
次のフェーズでは、マウスオーバーで表示されるボタンやリンクを選択する方法をご紹介します。
解決策
このような事例の解決策として、「時間差で選択」を利用することで記録することができます。
「時間差で選択」を利用することで、任意のタイミングでレコーディングを中断することができ、マウスオーバーで表示できるようになります。
以下で設定方法をご紹介します。
設定方法
- 「アプリケーション/ブラウザを使用」アクティビティの中で「クリック」アクティビティを使用する
- ターゲット選択画面に遷移する
3点リーダーにマウスカーソルを合わせると、メニューが表示されます。
- ファンクションキーのF2を押下する
ファンクションキーの「F2」を押下すると、5秒ほどの待機時間が発生するので、その間にカーソルを合わせ、ターゲットを表示させます。
待機時間終了後にクリックしたいターゲットを選択することができます。
また、「一度レコーディングを開始してしまったら、中断できずに連続でアプリを操作し続けなければいけないのか?」と疑問に思う方もいらっしゃるのではないでしょうか。
レコーディング中だとしても、「Escキー」を押下する、もしくは「一時停止ボタン」をクリックすることで、記録した操作を記憶したままレコーディングを中断することができます。
今回はUiPathのレコーダー操作を安定させるためのTipsをご紹介させていただきました。
弊社ではUiPathやAutomation 360、BizRobo!などのツールを使用して、様々な業務をRPA自動化する支援をさせていただいております。。
内容をヒアリングしたうえで、自動化の可能性をご提案させていただきます。
ペネトレイター株式会社 大湊