Find Children(子要素を探す)のアクティビティについて説明します。

ここで範囲を指定して、範囲内の処理に進みます
(処理:GetAttribute:表示名や行番号・列番号を取得や クリックなど)

説明をみると「指定した範囲とフィルター条件に従って、子の UI 要素のコレクションを取得します。」と書いてあります。
なんのこっちゃ。

範囲を決めて、全てを順番に処理していく処理です。
さらになんのこっちゃ。

事例で説明した方がわかりやすいですね。
どんな時に使うかというと(私の事例ですが)

(例1)単純に全てを処理する
(例2、3)データが2層構造になっているケース(第1表がヘッダー情報で、第2表が明細になっている)で
(例2)全ての行のデータを処理する
(例3)必要な行のデータを処理する

うーん、やっぱり、わかりやすくない。
というわけで、イメージで表示します。

【イメージ】

(例1)全てのデータをダウンロード

(例2)はスクレイピング

(例3)は承認ボタンを押下する

 

※(例2)の様に「第1表」が1行ずつの表示なら、最後の行の行番号が取得できれば、
ForNextで1行ずつ処理しても同じことができるので、ケースバイケースかとは思います。
(スピードはどちらが速いかはわかりませんが)
最後の行番号はスクレイピングか、URLを開いた直後にショートカットSendHotKey(例えば、ctrl+tab)でも取れる(時もある)と思います。
例3の様に行によっては「編集ボタン」が無いケースではFindChildrenが真価を発揮すると思います。

【作成方法】

さて、例を示したところで、実際のコーディングについてです

設定箇所:FindChildren(子要素を探す)アクティビティの設定箇所は、以下の4箇所です。
Filter:範囲の中での抽出箇所
Selector:URLも含めた範囲全体
Scope:FIND_CHILDREN もしくは FIND_DESCENDANTS
※Children子供は、すぐ下の階層、descendant子孫は、それ以下の階層を示します。
(他にもFIND_PROCESS等もあるますが、選択肢は、この二択だと思います)。
Children:これからForEachで回す範囲名。この変数タイプは、「IEnumerable<UiElement>」となるので、プロパティ画面上で右クリックで設定するのが一番楽だと思います。

 

その後の処理
For Each(繰り返し(コレクションの各要素))
Find Childrenで選択した範囲を順番に処理
その中で、Get Attributeとか Clickとかを実施

For Eachの設定方法はこんな感じです。
TypeArgumentを UiPath.Core.UiElementにするのを忘れないでください。

例えばの例ですが、以下の様に Find Children と For Each と GetAttribute等のアクティビティを組み合わせます。

Find Childerenの中の
・Selectorを何にするか?
・Filterを何にするか?
・FIND_CHILDRENなのか、FIND_DESCENDANTSなのか?
を細かく調べるには、Ui Explorerを使います。

使い方の詳細については次回↓に掲載します。
RPA体験談【実践編:UiPathのUiExplorerでUi要素の詳細を調べる】

 

 

 

 

 

RPA体験談【目次(主にUiPath)】

↑日記の目次を作りました。

 

 

次へ 前へ