Last updated on 2021年12月30日
久しぶりのUiPathノート。
今回は、知っている人は知っているがあまり知られていない完全セレクターと部分セレクターについてです。
実際の開発ではそこまで意識しなくてもなんとかなってしまう事柄ですが気になる方は是非読んでいってください。
Contents
絶対パス、相対パスと似たようなもの
セレクターというワードはUiPath独特の言葉であり難しく聞こえてしまいますが、「完全セレクター・部分セレクター」とはファイルシステムでいう「絶対パス・相対パス」と考え方は同じです。
完全セレクター
ファイルシステムでいうと絶対パスと同じく、ルートからのすべての情報を記述します。
つまり、「全てを記述した=完全」セレクターです。
部分セレクター
部分セレクターは、ファイルシステムでいうと相対パスです。
そのため、”どこから”という基準を決める必要がありその時利用するのがコンテナアクティビティ(後述)というものになります。
言い換えれば、コンテナアクティビティの中でしかこの部分セレクターは生成されません。
もちろん、利用も不可です。
つまり、部分セレクターとはコンテナアクティビティで指定されたUI要素からの相対的なUI要素を指定したものになります。
部分セレクターを生成するコンテナアクティビティ
部分セレクターを生成するコンテナアクティビティは下記のアクティビティになります。
アプリケーションを開く | 指定されたURLでブラウザを開き、その中で複数のアクティビティを実行できるようにするコンテナ |
ウィンドウにアタッチ | すでに開いているウィンドウにアタッチして、その中で複数のアクションを実行できるようにするコンテナ |
ブラウザーを開く | 指定されたアプリケーションを起動し、その中で複数のアクションを実行するコンテナ |
ブラウザーにアタッチ | すでに開いているブラウザに接続して、その中で複数のアクションを実行できるようにするコンテナ |
完全セレクターと部分セレクターのサンプル
完全セレクターと部分セレクターのサンプルをメモ帳への書き込みの例を用いて記載します。
「ウィンドウへアタッチ」と「文字を入力」アクティビティを利用しています。
完全セレクターのサンプル
部分セレクターのサンプル
完全セレクターと部分セレクターの使い分け
使い分けと書きましたが、どちらを使わなければいけないというルールはありませんし、どちらかの方法でしか動かないというようなこともありません。
使い分けについては、半分は個人の趣味によるところが大きいです。
とはいえ、開発での推奨はありそれは保守の観点および動作の観点となります。
同じアプリケーションや同じウィンドウ上で複数回の操作を行う場合、部分セレクターを利用したほうがUI要素を操作する意図が明確になり、保守をしやすいワークフローになります。
また、親ウィンドウのセレクターが微妙に変わってしまった場合も内部の構造が変わっていなければ、コンテナアクティビティの「ウィンドウへアタッチ」さえ修正すれば、その変更だけで対応できてしまいます。
動作の観点としては、PCへの負荷が挙げられます。
完全セレクターは対応するUIをルートから順次探すので、実行時のPCへの負荷も少なからず高くなります。
あまり気にしなくてもいい程度かと思いますが、頭に入れておいてPCスペックによっては対応できるようにしておくと良いかと思います。
最後に
以上、UiPathの「完全セレクター」と「部分セレクター」についての説明でした。
正直この辺は知っていなくても開発できてしまいますが、情報も不足指定的なる方は気になると思います。
結論は、どちらを使っても良いだと思いますが、是非使い分けを意識しつつ開発してみてください。
今回も最後までお読みいただきありがとうございました。
では。