皆さんこんにちは。RBTCのみさです。
今回は、UiPath StudioXでロボット開発をした際に、セレクターがほぼ毎回変わってしまう要素に対しての入力制御を行ったときの体験をご紹介いたします。
 

目次
1.    やろうとしたこと
2.    躓いたところ
3.    解決策
 

1. やろうとしたこと

今回開発しようとしたロボットは、経費精算入力を行うロボットです。
私自身、移動費など、多くの精算作業が発生するので、Excelにまとめて入力しておき、あとはロボットに任せたいな~と思っていました。

 

ロボットにやらせたいこと
   ①    利用者が入力したインプットファイル(Excel)を読み込む
   ②    経費精算システムにアクセス
   ③    インプットデータを元に各経費データを入力
   ④    一度にまとめて申請するデータなのかを判定 ※1度に複数データを入力できるため
   ⑤    申請
   ⑥    処理結果をインプットファイルに追記 ※同じデータをもう一度申請処理にかけないようにするため
   ⑦    次の処理へ
   ⑧    繰り返し処理が完了したら処理を終了させる

 

全体的に、特に難しい内容がふんだんに含まれているわけではないのですが、今回躓いたところはタイトルからもわかるかもしれませんが、「③インプットデータを元に各経費データを入力」でした。
 

2. 躓いたところ

該当システムはクラウド型ソフトウェアサービスであるためか、セレクター情報が安定せず、不定期で(つい先ほどまで問題なく動いていたり、何度か稼働確認して問題がなかったにもかかわらず後日エラーになったり)セレクター要素が見つけられず以下のエラーになりました。

発生したエラー:このアクションのユーザー インターフェイス (UI) 要素が見つかりませんでした。

何度かセレクターを取り直してみたり、アンカーを調整したりしたのですが、まったくと言っていいほど安定しませんでした。
 

3. 解決策

あきらめかけていたのですが、ふと「アンカーって一つだけしかダメだっけ?」という考えが頭をよぎりました。
通常、下の画像のように、アンカー設定をする際には前後左右のどこかにある要素を基準にしますが、今回問題になっている箇所には要素になりそうな箇所がほかにもありました。
 

アンカー1つだけの例
拡大
アンカー1つだけの例

物は試し、と次の画像のように、複数アンカーを設定してみました。

アンカー複数例
拡大
アンカー複数例

結果はうまく入力エリアを認識してくれ、該当箇所の入力処理を行うことができました。
 

アンカーの追加方法ですが、該当のターゲットを「ターゲットを編集」モードにします。
対象画面上にアンカーとターゲットの情報が出た後に、ターゲットにマウスカーソルを当てると、ターゲット下部に5つのメニューが表示されます。
この5つの中の真ん中、錨マークを選び、アンカーを追加します。
これでアンカーを複数追加することができます。
アンカーを複数追加すると、以下の画像のようにプロパティでも追加した分のアンカー含め増えていることが確認できます。
各アンカーそれぞれサブ項目もきちんと設定できます。
 

アンカーが複数設定されたアクティビティのプロパティ
拡大
アンカーが複数設定されたアクティビティのプロパティ

まとめ

今回はStudioXでの複数アンカー設定について解説させていただきました。
意外とアンカーを複数設定するということは盲点であり、かつ一部の環境には有効な可能性があると思い記事にしました。
最後に、今回の私の経験が、皆様のお役に立てば幸いです。
ここまでご覧いただき、ありがとうございました。