![わたし](https://melo-blue.com/wp-content/uploads/2023/07/IMG_3860.png)
こんにちは、業務自動化に励む限界会社員のモモ山です。
RPA化させた業務を開発環境とは別の環境で実行した際にエラーが頻出しました。
その時に試して効果があったことを備忘録として記録します。
今回の解説に使用しているRPAツールはPower Automate Desktop(環境:Windows11)ですが、
他ツール(UiPath等)全般にも通ずる部分だと思われます。
・シナリオ(ワークフロー)のUI操作(ブラウザ操作)時にエラーになる
・デバックでは上手くいくのに本番環境ではエラーになる
・自分のパソコンでは上手くいくのに別のパソコンでは止まってしまう
・入力フォームに入力する工程で失敗する
フォアグラウンドウィンドウ名を取得してみよう
エラー事象:指定のブラウザとURLを開くことは出来ているが、ログイン名の入力フォームに入力できない
①現在RPAが操作対象として認識しているウィンドウ(フォアグラウンドウィンドウ)のタイトルを取得してみます
②取得したウィンドウタイトルを確認します
私の場合はデスクトップ画面らしきウィンドウタイトルが記録されていました。
入力フォームへの入力アクションがデスクトップへと放たれていたわけですね。
この場合だと、フォームへの入力は出来ていませんが、入力アクション自体は問題なく完了されているため、
この時点でエラーにならずに先々の工程がエラーとして通知されたりします。
そうしたエラーメッセージに惑わされないようご注意ください。
【PR】自動化がどうしても上手くいかない・・・いっそのことマンパワーを調達する?
操作対象のウィンドウにフォーカスしよう
そもそも開発環境と本番環境が同じ(ワークフローを作ったPCと動かすPCが同じデバイス)であれば、こうしたUI操作の失敗は起こりにくく感じるので、
「ブラウザを開く」アクションの後すぐにUI操作のアクションで問題ないのではと思います。
しかし作成したワークフロー(シナリオ)を、仮想デスクトップや別のパソコンで動かす場合には、
前述のような、画面上にブラウザが見えているのにUI操作が上手くいかない可能性が生じます。
その時は、ブラウザを開いた後にブラウザにフォーカスするアクションを加えてみましょう。
こうすることで、開いたブラウザ且つブラウザ内のUI要素に対してアクションが発動するはずです。
![わたし](https://melo-blue.com/wp-content/uploads/2023/07/IMG_3860.png)
念のため前述の方法で、フォーカス後のフォアグラウンドウィンドウ名を取得して大丈夫そうか確認してみてね!
ブラウザ上のUI要素の識別に必要なセクレターですが、
RPAを動かす環境やデバイスを変えると、UI要素の位置関係も変わるためか、
デフォルトのセクレター設定だとエラーになってしまうことが多いです。
セクレターの最適化は少し難易度が高いので、
とりあえずはウィンドウサイズサイズを一律化させることで、環境が変わることでのエラーを少しでも防ぐことが出来るかもしれません。
【PR】RPAのお悩み相談からエンジニアへの制作依頼までできる、スキルのオンラインマーケット
余談
この記事の方法だけではフォーカスしきれないUI要素も存在しましたが、もう一手加えることで解決しました。長くなるので別の記事で解説します。