【UiPath】「セレクター」を理解する【初心者】

UiPath

UiPath】「セレクター」を理解する【初心者

UiPathの学習追体験記事です。
※あくまで学習中の脳内を記事にしたものなので、この記事で書かれてあることが”正しい”とは限りません。

参考:学習効率本5巻 「知識の自作」

最新研究からわかる 学習効率の高め方 第5巻 - ふろむだ - BOOTH
■2021年8月5日追記 本書の第3~5巻を増補改訂したバージョンを、2021年8月5日にアップロードしました。 増補改訂の具体的な内容は、以下の記事に詳しく書きました。 2021年8月5日以前に第3~5巻をダウンロードされた方は、再ダウンロードをお願いします。 =============== ■基本説明 基本的に、...

0.動機

「UiPath RPA アソシエイト資格試験」を受けたい!
と思い、練習問題のプラクティステストを受けてみたが、正答率は半分にも満たなかった。徹底的にプラクティステストの復習をするしかない!

ということで、本記事では、プラクティステストで間違えた問題の復習の様子を書きつらねていきます。

まずは、間違えた問題の紹介。

セレクタープロパティに設定できる引数タイプはどれですか。

引用元:https://www.pearsonvue.co.jp/uipath
UiPath RPA アソシエイト資格試験 プラクティステスト

解説部分には、この問題で求めている知識が紹介されていました。内容は以下。※答えは明示されてない

トピック:動的セレクターと静的セレクターの使用方法を理解し、説明する。

引用元:https://www.pearsonvue.co.jp/uipath
UiPath RPA アソシエイト資格試験 プラクティステスト

 

筆者
学習者

セレクターは入門書でよく見かけるが、動的セレクターや静的セレクターはあまり見たことないな。セレクター自体に難しい印象があるのに、さらに、動的・静的と複雑になると、かなり混乱しそうだ。

1.全体像理解

全体像理解とは、理解する項目の位置づけを把握すること。

垂直的理解

理解する対象が、UiPathアカデミーの「どのコース」「どの章」にあるかを確認する。

今回の理解の対象である「セレクター」については、以下のコースの章に記載があった。

UiPathアカデミー>UiPath Studio開発 初級コース>レッスン一覧>セレクター

UiPath Academy
This is an introduction to the process of analyzing, designing, deploying and maintaining Robotic Process Automation infrastructures

では、セレクター・動的セレクター・静的セレクターの説明文をそれぞれ見てみる。

 

セレクター

セレクターは、ユーザーインターフェイス内の特定のアクションを自動化するために、これらの UI 要素の属性を使用し、指定した要素までの「住所のようなもの」を自動生成したものです

引用元:https://academy.uipath.com/jp/learningpath-viewer/1954/1/153401/16

 

動的セレクター
※動的セレクターについては、UiPathドキュメントに詳細が記載されていたため、そちらを引用。
階層→UiPath Studio ガイド>セレクター>動的セレクター

動的セレクターは、ターゲットタグの属性のプロパティとして変数または引数を使用します。これにより、セレクターは、自動化プロジェクト内のやり取りに応じて変化する可能性がある正確な文字列ではなく、変数または引数の値に基づいてターゲット要素を簡単に特定できます。

引用元:https://docs.uipath.com/studio/lang-ja/docs/dynamic-selectors

※静的セレクターの説明文は見当たらなかったため割愛。

 

筆者
学習者

セレクターの説明文は、なんとなく理解できるけど、動的セレクターの説明文はさっぱりだ。セレクターを理解した上で動的セレクターを考えた方が良さそう。

 

よって、今回は、「セレクター」のみに絞って、復習していく。

水平的理解

以下の説明文を軸にセレクターを考えてみる。

セレクターは、……指定した要素までの「住所のようなもの」を自動生成したものです

引用元:https://academy.uipath.com/jp/learningpath-viewer/1954/1/153401/16

 

筆者
学習者
「住所のようなもの」かぁ~。住所って便利よな~。住所のおかげでアマゾンから商品が届くし、現在地・目的地の共有も簡単。
また、住所の階層をたどれば、ある程度の範囲をイメージできる。例えば、「沖縄県国頭郡国頭村宜名真61」という住所があった場合、国頭郡以降が分からなかったとしても、沖縄県のどこかにあることは分かる。
住所に階層構造があるように、セレクターにも階層構造があるのかもしれない。

セレクターの構造について調べてみた。以下、内容。

セレクターは次の構造を持っています。

<node_1/><node_2/>…<node_N/>

最後のノードは対象となる GUI 要素を表し、それより前のノードはすべてその要素の親を表します。<node_1> は通常、ルート ノードと呼ばれ、アプリケーションのトップ ウィンドウを表します。

引用元:https://docs.uipath.com/studio/lang-ja/docs/about-selectors

 

学習者
学習者
やはり、セレクターにも階層構造があるみたいだね。「最後のノードが対象となるGUI要素でそれより前のノードは、すべて親にあたる」ということは、先ほどの住所(沖縄県国頭郡国頭村宜名真61)で言うところの「宜名真61」が最後のノードで、「沖縄県国頭郡国頭村」が親を表すノードってことかな。実際に、Googleマップで「宜名真61」を調べたら、正しい場所が表示され、その上、「沖縄県国頭郡国頭村宜名真61」と表記された。
セレクターの階層構造に着目して、理解を深めていく。

2.実践理解

実際に手を動かすことで理解を深める。

ルートノード<node_1/>を探す

「ルートノードはアプリケーションのトップウィンドウを指す。」

ルートノードのみセレクターに表示されるようにしてみる。

方法は、レコーディングでアプリケーションのトップウィンドウを取得する。

・メモ帳で

上記画像の部分にカーソルを合わせることでウィンドウを取得できた。

↑レコーディングで記録したフロー。

セレクターエディターを確認すると、ルートノードが表示されていた。

学習者
学習者

1つ1つ分解して見てみると、appとtitleはなんとなく分かるけど、clsはよく分からない。「ウィンドウにアタッチ」アクティビティに「Notepad」と記載があることを考慮すると、clsはウィンドウを示しているのかな。

学習者
学習者

このルートノードを変更することで、他のアプリケーションを操作できるのかな。

試みたところ、ルートノードの編集はできなかった。

学習者
学習者

セレクターを編集なのに、ルートノードの編集はできないのか。まさか、それ以降のノードも編集できないなんてことはないよね。

・ブラウザで

同様にルートノードを探す。

メモ帳のときと同じ項目で構成されたルートノードが表示された。あと、どこを取得しても2つ目のノードが表示されてしまう。

学習者
学習者

ルートノードの構成要素は、「app・cls・title」の3つと決まっているのかな。

・Twitterで

同様にルートノードを探す。

上記2つのルートノードの構成と違った。「cls」の代わりに「appid」という要素が使われていた。

学習者
学習者

ルートノードの構成要素は、すべてのアプリケーションで決まっているわけではないのか。

最後のノードを探す

「最後のノードは、対象となる GUI 要素を表す。」

レコーディングでGUI要素を取得する。

・メモ帳で

レコーディングでGUI要素をクリックする。

GUIとは

https://wa3.i-3-i.info/word1371.html

クリックしたGUI要素に対応する「最後のノード」が表示された。

学習者
学習者

クリックしたボタンに表示されているテキスト「ファイル(F)」が、最後のノードでは、「name=’ファイル(F)’」と表示されていた。ボタンのテキストがそのままname欄に記載されるのかな。

あと、「最後のノード」の構成要素は、「name・role」と決まっているのかな。

学習者
学習者

ルートノード以下のノードは、編集できるみたいだ。安心。安心。

・ブラウザで

同様に行ってみたが、うまくいかなかった。

学習者
学習者

次回、他のページで試してみよう。

・Twitterで

同様に最後のノードが表示されるようにレコーディングを行う。

最後のノードの構成要素は「name」と「role」だった。

学習者
学習者

構成要素は、メモ帳のときと同じみたいだ。だけど、nameの前についている「uia」は、メモ帳のときと異なるな。
そもそも、「nameやrole」、「uiaやwnd」のことをなんて言うのだろう。

調べてみた。

セレクターについて
To automate specific actions in the user interface, you are required to interact with various windows, buttons, drop-down lists and many others. One of the ways...
学習者
学習者

「uiaやwnd」はタグ、「nameやrole」は属性と言うらしい。
つまり、「1つのノードは1つのタグでできており、そのタグの中に複数の属性が入っている」ってことみたいだね。

で、「uia」ってなに?

調べてみたけど、、これであってるか自信ない。

Microsoft UI Automation - Wikipedia
学習者
学習者

Microsoft UI Automationを略して「UIA」。。。
「uia」ってタグがあることだけ知っておこう。

3.まとめ

セレクターの階層構造に着目して、学習を行ってみた。今回セレクターについて理解したことを自分の言葉でまとめてみる。

・セレクターは、ノードの階層構造で成り立っている。
・ノードは、複数の属性をまとめる1つのタグで成り立っている。
・ルートノードは、編集できないノードである

学習者
学習者
セレクターの中身については、ある程度理解できた。次は、このセレクターをどのように使用するのかが知りたい!

4.参考文献

UiPath Academy
This is an introduction to the process of analyzing, designing, deploying and maintaining Robotic Process Automation infrastructures
Amazon.co.jp: 基礎がよくわかる! ゼロからのRPA UiPath 超実践テクニック eBook : 吉田 将明: 本
Amazon.co.jp: 基礎がよくわかる! ゼロからのRPA UiPath 超実践テクニック eBook : 吉田 将明: 本
セレクターについて
To automate specific actions in the user interface, you are required to interact with various windows, buttons, drop-down lists and many others. One of the ways...
https://wa3.i-3-i.info/word1371.html

コメント

タイトルとURLをコピーしました