概要
Desktop Automation Stepでアプリケーションを操作する際、「Finder must not find more than one application」のエラーが発生する場合があります。
このエラーは、ステップのファインダーで指定したApplicationが一意に特定できない場合に発生します。
<発生例>
・操作対象アプリケーションの複数起動により、DAEditer上で同じ名称のタブが複数存在していた
・前段の処理で閉じておく必要があるウィンドウが閉じられていなかったり、ウィンドウを閉じるタイミングにより、同じアプリケーション名のウィンドウが複数存在する状況が発生した
エラーメッセージ
FinderIssue がステップ:{DA内ステップ名}で発生しました。
Finder must not find more than one application.
対処方法
-
同一アプリケーションで複数のウィンドウを開いておく必要がない場合
ロボットに下記の対処策を実装します。
- アプリケーションを閉じるステップを追加する
操作対象アプリケーションの処理が終了した直後にアプリケーションを閉じるステップを追加し、 アプリケーションウィンドウが複数存在してしまう状況を回避します。 - ステップ直前に十分な待機時間を設ける
アプリケーションを閉じるステップを実装しても事象がランダムに発生する場合は、「ガードチョイス(Guarded Choice)」ステップでウィンドウが完全に閉じるまで待機する設定を加えることで、エラーが回避できる可能性があります。
- アプリケーションを閉じるステップを追加する
-
同一アプリケーションで複数ウィンドウを開いて操作する必要がある場合
下記のような方法で、対象アプリケーションを明示的に指定します。
後述の方法は一例となるため、実際に操作する対象のアプリケーションに応じて実装ください。
-
Application名に属性情報を追加で記述する
アプリケーションタグに、一意に判別できる属性値が含まれている場合は、ファインダーのApplication名にその属性情報を追記します。
例)EXCEL.EXE ⇒ EXCEL.EXE[title="title属性値"]
EXCEL.EXEのみ
対象アプリケーションが表示されず、ファインダーが認識できない
EXCEL.EXE[title="title属性値"]
対象アプリケーションが特定され、ファインダーが認識される
-
Application名の指定にセレクター構文を用いるアプリケーションタグに、一意に判別できる属性値が含まれていない場合は、セレクター構文を用いて、複数存在する同一アプリケーションタブの何番目に該当するかを指定します。
例)msedge.exe ⇒ msedge.exe:nth-of-type(2)
msedge.exe
対象アプリケーションが表示されず、ファインダーが認識できない
msedge.exe:nth-of-type(2)
対象アプリケーションが特定され、ファインダーが認識される
-
Application名に属性情報を追加で記述する
参考
ChromiumでOpenステップ実行の度に増えるアプリケーションタブを閉じる方法
Guarded Choice(ガードチョイス)の特徴
DAでの操作対象Excelブックの明示方法
DAにおけるfinder(ファインダー)の記法
DAのcomponent設定で属性値に含まれる文字列の一部を使用する方法
区分 | 確認Ver |
トラブルシュート | 10.4.0.4 |