繰り返しループ ステップ

繰り返しループ ステップは、アプリケーション ツリー内のノードを反復処理します。[範囲ファインダー] と呼ばれるコンポーネント ファインダーがあります。これは、ツリーの一部を特定し、反復するノードを検出します。イテレーションは、スコープ ノードの下にないノード (スコープ ファインダ-によって検出されたノード) についてはループしません。[範囲ファインダー] は、ステップ内のすべてのファインダーと似ています。これは、このステップが動作するツリーの一部を検出するためです。スコープ ファインダーは常に、繰り返しループ ステップの中で一意となる名前を持つ必要があります。

繰り返しステップの要素ファインダーは、ファインダーの名前と "> DIV" などの相対セレクターで設定されています。スコープ ファインダーと同様に、要素ファインダーは常に、繰り返しステップの中で一意となる名前を持つ必要があります。

相対セレクターは、ループするエレメントを検出するために使用されます。このセレクターは、別のセレクターと結合されて実際の新しいセレクターを形成するようになっているため、相対セレクターと呼ばれます。スコープ ファインダーにセレクター "DIV[class="someClass"]" があり、要素ファインダーのセレクターが "> DIV" の場合、結合セレクターは "DIV[class="someClass"] > DIV" のようになります。反復するエレメントを検出するために使用される実際のファインダーはスコープ ファインダーと本質的に同じですが、セレクターがこの新しい結合セレクターに置き換えられます。

繰り返しループ ステップは次のように動作します。開始イテレーションでは、結合されたファインダーにより最初に検出されたエレメントは、エレメント ファインダーの名前となるエレメントです。次のイテレーションで検出されるエレメントは、前のエレメントの次に見つかるエレメントです。繰り返しステップの実行中にツリーが変更され、新しいエレメントがツリーに表示された場合、現在のイテレーションのエレメントの前または後に現れるかどうかに応じて、この新しいエレメントがその後のイテレーションに含まれる場合と含まれない場合があります。

エレメント ファインダーで見つかったエレメントは、他のファインダーのリファレンスとしてループの本文内で使用されます。

以下は、繰り返しループ ステップの一例です。


繰り返しループ ステップ

レコーダー ビューの [ループ] メニュー

ループ繰り返しステップは、他のステップと同様にオートメーション ワークフロー ビューに直接挿入できますが、レコーダー ビュー内で右クリックしショートカット メニューを使用して挿入する方が便利です。[ループ] と呼ばれるメニュー項目を選択します。ループには次の 4 つのサブメニューがあります。

  • すべての兄弟

  • 各 <タグ名> 兄弟

  • 各 <タグ名> (<レベル>) 祖先

  • 各テーブル行

これらのサブメニューは、現在選択されているエレメントに応じてさまざまなエレメントをループする繰り返しループ ステップを作成するのに役立ちます。Design Studio では、繰り返しループ ステップにガード チョイス ステップが挿入されます。これにより、繰り返しステップが実行される前にスコープ ファインダーがツリー内に確実に表示されるようになります。

すべての兄弟
このメニュー項目は、選択されたタグのすべての兄弟をループする繰り返しループ ステップを挿入します。スコープ ファインダーは、選択されたエレメントの親 (スコープ ノードと呼ばれる) を検出し、エレメント セレクターは "> *" となります。つまり、スコープ ノードの下にある任意の子ノードを検出します。
各 <タグ名> 兄弟
このメニュー項目は、選択されたタグのすべての兄弟を同じタグ名でループする繰り返しループ ステップを挿入します。スコープ ファインダーは、選択されたエレメントの親 (スコープ ノードと呼ばれる) を検出し、選択されたエレメントがタグ名 P を持つ場合、エレメント セレクターは "> P" となります。
各 <タグ名> (<レベル>) 祖先

このメニュー項目は、Desktop Automation ワークフローで組み込みブラウザを使用する場合にのみ使用します。このコマンドは、ループのための適切な祖先ノードを検索します。そうすることで、自身に似た兄弟ノードが複数あるノード、または以下のタグ名のエレメントを持つ祖先ノードを探します。"TR"、"LI"、"TD"、"TH"、"DD"、"OPTION"、"PARAM"以下の場合、2 つのノードが類似します。

  • タグ名が同じで、クラス属性がない。
  • タグ名が同じで、同じクラス属性である。

次の HTML で内部の P タグを 1 つ選択すると、そのループは囲んでいる DIV タグ内の 1 つの P タグを繰り返さずに、P タグを含む DIV タグをループします。

例:


<DIV>
  <DIV>
    <P>1</P>
  </DIV>
  <DIV>
   <P>2</P>
  </DIV>
</DIV> 

メニュー項目の丸括弧内のレベルは、選択されたエレメントのいくつ上のレベルに実際のループ エレメントが配置されているかを示します。上記の例では、このレベルは 1 です。メニュー項目に表示されるタグ名は、実際のループ エレメントのタグ名です。

各テーブル行
このメニュー項目は、Desktop Automation ワークフローで組み込みブラウザを使用する場合にのみ使用します。このコマンドは、表のすべての行を繰り返し処理する繰り返しループ ステップを挿入します。

繰り返しループ ステップの使用

繰り返しループ ステップを使用する際には、考慮するべき事柄が何点か必要があります。

イテレーションのスキップ
一部の初期ノードや各 2 番目のノードなど、一部のエレメントをループ中にスキップしたい場合は、ループ内の最初のステップとして、テストが true である場合に継続される条件ステップを挿入します。たとえば、次の条件では、ループはすべての偶数回の繰り返しをスキップします。

=i % 2 == 0

繰り返しステップ内のファインダー

Kofax RPA は、検出されたエレメントに相対的な要素を自動的に検出します。レコーダー ビューで要素を右クリックしてアクションを挿入するときに、この要素が検出された指定エレメント内にある場合、生成されたファインダーは、次のように検出された要素に対して相対的になります。


オートメーション デバイス ビューで要素を右クリックしてアクションをループに挿入

結果は下図のようになります。実際の結果は、選択したエレメントと、エレメント ファインダーに付けた名前によって異なります。


検出されたエレメントに関連するファインダー