
UI要素のテストで「親スクリーンが見つかりません」と表示されるときがあります。
今回はその対処法について、説明していきます。
はじめに
親スクリーンとは、UI要素が属しているウィンドウのことです。
UI要素ペインで説明すると、下図の破線部分が親スクリーンとなります。

「親スクリーンが見つからない」は、以下の場合に表示されます。
UI要素が表示されていない場合は、UI要素を表示させることで解決します。
ここでは「親スクリーンの指定方法が適切ではない」場合の対処法を説明します。
親スクリーンを指定する方法
1.スクリーンセレクターを表示させる
「親スクリーンが見つかりません」と表示されたUI要素の編集画面で、「スクリーンセレクターを開く」をクリックします。

UI要素の編集画面と同じように、親スクリーンの編集画面が起動します。
2.「Name」の値を変更する
指定方法が適切でない場合は、属性「Name」を変更すれば解決することが多いです。

「Name」には、ファイルやウィンドウタブの名前など、固有名称が設定されています。
UI要素を取得した時と同じ名称のウィンドウを開いていないと、親スクリーンを発見できずに「見つかりません。」というエラーが発生します。
下図は、どちらもエクスプローラーで取得した「閉じる」ボタンのスクリーンセレクターです。
フォルダが異なっていても「閉じる」ボタンのUI要素は同じになりますが、表示しているフォルダによって「Name」の値がちがうことが分かります。



親スクリーンの「Name」が指定されることで、UI要素取得時のウィンドウ以外はエラーとなってしまいますが、以下のように変更すれば解決します。
「Name」の選択を外す
属性から「Name」の選択を外してもUI要素の特定が出来る場合は外しましょう。

演算子を「含む」に変更して共通する値のみ残す
Nameの値が「ウィンドウによって変わりそうな値(ファイル名など)+アプリケーションの名前」で構成されている場合は、アプリケーションの名前だけ残す方法もあります。
値を変更した場合は、演算子も変更しないとエラーになるので注意してください。

注意点・ポイント
親スクリーンを変更するタイミング
親スクリーンは、なるべくフロー作成の最後に変更しましょう。
UI要素ペインでは、親スクリーンごとにUI要素がまとまって表示されます。親スクリーンを変更すると、同じウィンドウで取得したUI要素でも別の親スクリーンとして認識されてしまい、新しく親スクリーンが誕生します。
新しく親スクリーンが作られてしまうと、その都度、変更作業が必要になるので中々面倒です。
WebブラウザのUI要素をデスクトップUIとして取得している場合
Webブラウザの開いているタブ数によって、親スクリーンの「Name」の値が変わります。
実際にフローを実行する環境と同じタブ数でUI要素を取得するか、「Name」の値を変更することでエラーを回避しましょう。
同一アプリを複数起動する場合
同時に複数の同一アプリやウィンドウが開いている場合に「Name」の値設定を緩くしすぎると、親スクリーンの候補が複数存在し、別のUI要素を指定してしまう可能性があるので気を付けてください。
ループを使用していて、処理ごとにファイル名が違う場合などは「Name」に変数を指定しましょう。
演算子の指定
演算子は「次の値で開始」「次の値で終わる」といった指定でも問題ありませんが、「含む」の方が指定の幅が広がるのでエラーになる可能性が低くなります。
アプリケーションの更新に注意
アプリケーションの更新によってウィンドウ名が変わると、「親スクリーンが見つかりません。」と表示されることがあります。
今まで上手くいっていたのに急にエラーとなった場合は、更新を疑ってみましょう。
ちなみに、「Name」はタスクバーでポップアップが表示された時の上にあるタイトルと大体同じです。


大体は「Name」で直ると思いますが、ダメだったらごめんなさい。


