ファインダー
ファインダーは Desktop Automation の重要な概念です。ファインダーは、あるアクションの実行を行うエレメントを検索する方法を示します。例:
- アプリケーションを開く場合に、ファインダーによってどのデバイスを開くべきかがわかります。
- ボタンをクリックする場合に、ファインダーによってどこをクリックするべきかがわかります。
- また、テキストを抽出する場合に、ファインダーによってテキストを探す場所がわかります。
[レコーダー ビュー] で右クリックして、アクション ステップを挿入すると、ファインダーが自動的に作成されます。Design Studio は、アクションを実行しようとするエレメントを確実に見つけるためのファインダーの作成を試行します。
[オートメーション ワークフロー] ビューをクリックしてステップを直接挿入した場合は、ファインダーは空であるため、アクションのターゲットを指定するファインダーを設定する必要があります。
デバイス、アプリケーション、またはコンポーネントというラベルの付いたボックスを展開して、ステップで使用したファインダーをいつでも確認することができます。
![デバイス オートメーション ステップのファインダー](../../All_Images/Finder.png)
ファインダーのタイプ
ファインダーには主に 4 つのタイプがあります。
-
デバイス ファインダー
-
アプリケーション ファインダー
-
コンポーネント ファインダー
-
イメージ ファインダー
各ファインダーは下のものほど複雑で、より具体的な要素が得られます。
- デバイス ファインダー
-
最も単純なファインダーは、デバイス ファインダーです。デバイス ファインダーに含まれるのは、アクセス可能なデバイスを選択するデバイス セレクターのみです。
デバイス セレクターは、ロボットがアクセスできるデバイス名を含むドロップダウン リストです。デバイスは、Desktop Automation ステップの [アクション] タブにある [必要なデバイス] にリスト表示されます。
ドロップダウン リストには、他のファインダーのエイリアスも含まれています。いずれかのエイリアスを選択すると、このファインダー内のデバイス セレクターが再利用されます。
デバイス ファインダーは、開くなどでアプリケーションを開くデバイスを選択する際に使用します。
- アプリケーション ファインダー
-
アプリケーション ファインダーは最初に特定のデバイスを選択し、次にこのデバイス上の特定のアプリケーションを選択します。アプリケーション ファインダーには、デバイス セレクターとアプリケーション セレクターが必要です。
アプリケーション ファインダーが別のアプリケーション ファインダーをベースとしている場合は、この別のアプリケーション ファインダーのデバイス セレクターとアプリケーション セレクターが再利用されます。
アプリケーション ファインダーがデバイス ファインダーをベースとしている場合は、デバイス セレクターが再利用されるため、アプリケーション セレクターを指定する必要があります。
アプリケーション セレクターは、セレクター構文で説明している CSS セレクター構文を使用します。
検出済みのアプリケーションを再利用する場合は、すべてのアプリケーションに検索を再実行するのではなく、このアプリケーションの内部ハンドルが使用されます。これにより、アプリケーションの複数の新しいインスタンスが同じ名前で起動された場合でも、アプリケーションのターゲット設定を正しく行うことができます。
アプリケーション ファインダーは、キー プレスでキー プレスを受信するアプリケーションを選択するために使用することができます。
注 一部の構成では、アプリケーション セレクターは無視されます。たとえば、デバイスにキー プレスが無差別に送信されると、その時点でフォーカスされている (前面にある) あらゆるアプリケーションがキー プレスを受け取ります。このような場合は、アクションの実行時に、必要なアプリケーションがフォーカスされていることを確認する必要があります。 - コンポーネント ファインダー
-
最も一般的なファインダーはコンポーネント ファインダーです。コンポーネント セレクターは、特定のデバイスおよびアプリケーションを選択するのではなく、入力フィールド、ボタン、アイコン、テーブル、メニューなど、アプリケーション内の特定のコンポーネントを検索します。
コンポーネント ファインダーは次のいずれかをベースとしています。
- デバイス
- 検出されたアプリケーション
- 検出されたコンポーネント
コンポーネント ファインダーがデバイスをベースとしている場合は、アプリケーション セレクターおよびコンポーネント セレクターを指定する必要があります。アプリケーションを再利用する場合は、コンポーネント セレクターのみを指定する必要があります。
コンポーネント セレクターは、セレクター構文で説明しているのと同じ CSS セレクター構文を使用します。
検出済みのコンポーネントを再利用する場合は、すべてのコンポーネントに検索を再実行するのではなく、このコンポーネントの内部ハンドルが使用されます。これにより、コンポーネントの位置が変更され、実行時間が短縮されている場合でも、コンポーネントのターゲット設定を正しく行うことができます。
コンポーネントを再利用するファインダーには、オプションの [内側のコンポーネント] フィールドが追加されています。このフィールドを使用すると、テーブル内のセルや、モーダル ダイアログ ボックス内のボタンなど、すでに検出されているコンポーネント内のコンポーネントを検出できます。
内側のコンポーネント セレクターも、セレクター構文で説明している CSS セレクター構文を使用します。
すべてのタイプのコンポーネント ファインダーに、オプションの [テキスト マッチ (Regex)] セレクターがあります。前述のセレクターを使用して、見つかったコンポーネントの中で一致するテキスト コンテンツを検索します。含まれるコンテンツのみで変化するエレメントを識別するには、[テキスト マッチ (Regex)] が便利です。たとえば、コンポーネント セレクターで OK ボタンとキャンセル ボタンの両方が検出された場合、テキスト セレクターは「キャンセル」というテキストを識別して、的確にキャンセル ボタンを見つけ出します。テキスト セレクターは、正規表現の構文を使って記述されます。
- イメージ ファインダー
-
一部のコンポーネント ファインダーには、追加のイメージ セレクターがあります。これらのコンポーネント ファインダーもイメージ ファインダーと呼ばれます。
必要な要素がアプリケーション ツリー内に簡単に見つからなくても、その要素が視覚的な外見を持つ場合には、イメージ ファインダーを使うことができます。
注 イメージ ファインダーは、ファインダーごとに 3000 件の一致に制限されています。たとえば、3000 個のインスタンスが見つかった後、ロボットは一致する画像の検索を停止します。イメージ ファインダーはデフォルトでは使用しませんが、コンポーネント ファインダーを使用するあらゆるステップで、その代替となります。イメージ ファインダーの使い方:
-
検索するグラフィック エレメントの周囲のレコーダー ビューで、長方形の選択 (紫色でマーク) をドラッグします。この長方形を変更するには、辺をドラッグするか、新たな長方形を描きます。
-
選択範囲内を右クリックしてステップを挿入します。ステップには、選択によって作成されたイメージ ファインダーが含まれます。
イメージ ファインダー内のイメージ セレクターは編集できませんが、上記のステップ 1 の説明に従って置き換えることができます。
イメージ セレクターを除去し、イメージ ファインダーを標準のコンポーネント ファインダーに変換するには、[画像] フィールドで該当する選択項目を削除します。
イメージ セレクターには、次の 2 つの形式があります:シンプルなイメージ セレクター、および 9 グリッド セレクター (9 グリッド イメージ ファインダーで説明)。
重要 リモート デスクトップ プロトコル (RDP) を介して Windows 自動デバイスにリモートで接続する場合、解像度と色深度はコンピュータとリモート デバイス間のネットワーク接続速度に依存します。ロボットがイメージ ファインダーとIntelligent Screen Automation (ISA) を使用している場合、異なるロボットの実行で異なる接続速度が問題を引き起こす可能性があります。イメージ ファインダーおよび ISA では、同一のアプリケーション状態で、ピクセル単位で同一の画像を常に受信することが重要です。「開く」ステップの RDP 接続には、明示的に指定された同じ解像度と色深度パラメータ (g: デスクトップ ジオメトリ (WxH) およびa: 接続の色深度) を常に使用してください。例:rdp://user1:MyPassword@MyDesktop?g=640x480&a=16
-
セレクター構文
アプリケーション セレクターおよびコンポーネント セレクターは、CSS セレクターの構文を使用します。これにより、どのエレメントを選択すべきかを詳細に示すことができます。
セレクターの一般的なパターンは次のとおりです:
elementName[attributeName="attributeValue"]
たとえば、"Documents" というタイトルを持つ explorer.exe アプリケーション ウィンドウを検索するには、次のパターンを使います:
explorer.exe[title="Documents"]
セレクター パターンは、親子関係を示す不等号 (>) および祖先 - 子孫関係を示す空白スペースを用いてネストすることもできます。たとえば、ウィンドウ 要素の下位のどこかに存在する、ツールバー要素の子エレメントであるボタンを見つけるには、次のようなパターンを使用します:
ウィンドウ ツールバー > ボタン
- アドバンスド セレクター構文
-
Kofax RPA は、多くの高度なセレクター構文をサポートしています。次の表は、サポートされている演算子とその動作の一覧を示します。
パターン 意味 *
任意のエレメント
E
タイプ E のエレメント
E[foo]
"foo" 属性の E エレメント
E[foo="bar"]
"foo" 属性値が "bar" と正確に等しい E エレメント
E[foo~="bar"]
"foo" 属性値が空白で区切られた値のリストの E エレメント、その 1 つは "bar" と全く同様
E[foo^="bar"]
"foo" 属性値が文字列 "bar" で正確に始まる E エレメント
E[foo$="bar"]
"foo" 属性値が文字列 "bar" で正確に終わる E エレメント
E[foo*="bar"]
"foo" 属性値にサブストリング "bar" を含む E エレメント
E:root
E 要素 (ドキュメントのルート)
E:nth-child(n)
E エレメント (親から n 番目の子)
E:nth-last-child(n)
E エレメント (最後のエレメントから数えて、親の n 番目の子エレメント)
E:nth-of-type(n)
E エレメント (同タイプの n 番目の兄弟)
E:nth-last-of-type(n)
E エレメント (最後のエレメントから数えて、そのタイプの n 番目の兄弟エレメント)
E:first-child
E 要素 (親の最初の子)
E:last-child
E 要素 (親の最後の子)
E:first-of-type
E 要素 (同タイプの最初の兄弟)
E:last-of-type
E 要素 (同タイプの最後の兄弟)
E F
E エレメントの子孫 F エレメント
E > F
E エレメントの子 F エレメント
E + F
E エレメントの直後の F エレメント
E ~ F
E エレメントの後のF エレメント
- 複数の属性
-
アプリケーション ウィンドウを一意に識別するには、以下のように、セレクター内でパターンを伴った複数の属性を使用できます。
element[attribute1=”value1”][attribute2=”value2”][attribute3=”value3”]
たとえば、visible = "true" で "Save" から始まる名前を持つボタンを見つける場合は、次のようになります:
button[visible=”true”][name^=”Save”]
再利用可能なファインダー
信頼性の高いファインダーを作成することは、自動化プロセスの安定性において重要です。これは場合によっては困難で、またファインダー内の各セレクターを手動で修正する必要があります。ファインダーの仕組みに満足できたら、さまざまな状況で再利用できます。
再利用のもう一つの理由は、一貫性を保つためです。同じエレメントに対して多数のステップでアクションを実行する場合、すべてのステップで同じファインダーを使用するのが合理的です。これにより、どのようなエレメントであっても矛盾が起きないようになります。
ファインダーの再利用には、次の 3 つの方法があります:
- ファインダーをコピー&ペーストする
- 前のファインダーを参照する
- ファインダーを名前で参照する
- ファインダーをコピー&ペーストする
-
再利用において、ファインダーのコピーと貼り付けは最も脆弱な方法です。この方法は、空のファインダーでファインダーの作成を始めたくない場合には実用的です。
ファインダーをコピーするには、オートメーション ワークフロー表示でファインダーを選択し、[Ctrl+C] を押すか、ツールバーのコピー ボタン
をクリックします。
コピーしたファインダーを貼り付けるには、上書きするファインダーを選択し、Ctrl + V を押すか、ツールバーの貼り付けボタン
をクリックします。
- 前のファインダーを参照する
-
前のファインダーの参照は、ファインダーを再利用するうえで最も有用かつ一般的な方法です。この参照を行ったものは、ファインダーの上から 2 番目のフィールドの再利用ドロップダウン リストに [(直前の)] とマークされます。この場合、現在のファインダーでは、直前に使用されたファインダーのセレクターが再利用されています。
一連のファインダーで前のファインダーを使用している場合、その各ファインダーは、前のものではない、最初のファインダーの構成を共有していることになります。チェーン内のすべてのファインダーを編集するには、最初のファインダーを編集します。
レコーダー ビューから作成された多くのステップでは、前のファインダーの参照がファインダーに自動的に含まれます。
- 名前付きファインダーの参照
-
名前付きファインダーの参照は、再利用するファインダーが前にあるファインダーではない場合に便利です。
ファインダーに名前を付けて、再利用できるようにするには、[エイリアス] フィールド (ファインダー上部の最初のフィールド) にわかりやすい名前を入力します。名前付きファインダーが 1 つ以上ある場合、後続のファインダーの再利用ドロップダウン リストにオプションとして表示されます。
ファインダーが別のファインダーを再利用する場合は、そのファインダーの構成を共有します。名前付きファインダーを編集すると、そのファインダーを参照するすべてのファインダーに影響します。
9 グリッド イメージ ファインダー
9 グリッド イメージ ファインダーは廃止される予定です。このファインダーでロボットを使用し、9 グリッド イメージ ファインダーを新規作成できます。ただし、[オートメーション ワークフロー] ビューでファインダーを編集することはできません。Kofax では、このファインダーは今後のリリースで削除されるため、使用しないことを推奨しています。
9 グリッド イメージ ファインダーはイメージ ファインダーの一種で、レコーダー ビューでさまざまなサイズのエレメントを見つけるために使用することができます。このファインダーを使用して、主にボタンまたはテキスト フィールドを検索できます。このコンテキストにあるエレメントは、イメージ ファインダーを評価する際に検索されるサブ イメージになります。ファインダーを作成するときは、最大 9 個までのエレメントを定義して検索することができます。抽出に 9 グリッドのファインダーを使うと、中央のエレメントが抽出されます。ファインダーをマウス移動で使用する場合、ステップで定義されたオフセットに対して、ポインタが中央の要素に移動されます。
![9 グリッド イメージ ファインダー](../../All_Images/ninegridfinder.png)
上の画像では、斜線がかかったセルはファインダー評価から除外されています。
- 前提条件
-
-
2 つの対角部、または上部および左側のエレメントといったように、中心のエレメントの大きさを計算することができるように十分なエレメントを定義します。
-
含まれるエレメントは、過不足なく照合され、ピクセル単位で検索されます。
-
各エレメントは、最低 1x1 ピクセルのサイズになります。
-
- 9 グリッド ファインダーの追加
-
9 グリッド イメージ ファインダーを作成するには、レコーダー ビューのボックスをイメージ ファインダーに同様にドラッグし、イメージ ファインダーのトグル ボタン
をクリックします。ファインダー内のバーの移動は、9 グリッド ファインダーのエレメントを変更するのに役立ちます。マウスを使ってクリックしたり、矢印キーを使ってバーをファインダーの内側に移動することができます。長方形を変更するには、辺をドラッグするか、新しい長方形を描きます。
ファインダー評価にエレメントを含めるには、エレメントを右クリックし、[検索時セルを含める] を選択します。エレメントを除外するには、セルを右クリックし、[検索時セルを含めない] を選択します。また、[Ctrl+Click] を使って、エレメントを含めたり除外したりすることもできます。含まれるエレメントは透明になり、除外されたエレメントには灰色の斜線がかかります。デフォルトでは、9 グリッド ファインダーにはすべてのコーナー エレメントが含まれることに注意してください。
シンプルなイメージ ファインダーに戻るには、イメージ ファインダーのトグル ボタンをもう一度クリックします。
- ワークフロー ビューでの 9 グリッド ファインダーの操作
-
9 グリッド ファインダーを使ってステップを追加すると、オートメーション ワークフロー ビューでそのステップを確認できます。9 グリッド ファインダーは、ワークフロー ビューに含まれるエレメントのみを表示します。除外されたエレメントは灰色です。ファインダー トグル内のエレメントをクリックすると、包含状態が切り替わります。
小さなエレメントの詳細がよく見えるように、また巨大なイメージが表示されないように、イメージは拡大および切り抜きされます。