Wait Element Vanish の動作

いつもありがとうございます。

Wait Element Vanishの動きがつかめずご相談させていただきます。
このアクティビティの仕様は下記のどちらでしょうか?

1.要素の有無が、有→無 に変化するのをとらえている。(=エッジを見ている)
2.呼び出されたときに「有」なら「無」になるまで待つ。
呼び出されたときに「無」なら待たない。

言い換えると、Wait Element Vanishを呼び出した時点で、対象の要素が「有」でないと
このアクティビティは機能しないのでしょうか?

私が遭遇している現象は下記のとおりです。

① 名前を付けて保存ダイアログに必要事項を入力し「保存」
② Wait Element Vanishにて①のダイアログが閉じるのを待つ

ダイアログはすぐに閉じますが、Wait Element Vanishはタイムアウトします。

@kaishii

wait element vanishの挙動についてですが、以下解説にあるとおり、" WaitForReady"のパラメータで、Activityが呼び出されたタイミングで対象の有無を設定できます。
https://activities.uipath.com/lang-ja/docs/wait-ui-element-vanish

ただ、time outしているということと、このパラメータのデフォルト値は、interactive (対象の要素が出るまでまってからwait する)だったと思うので、もしかしたら、そのパラメータに影響されてるというよりは、正しくセレクタが認識されていない可能性があります。

以上、ご参考まで。
J,

こんにちは

動作的には2かと思いますが、厳密に現状を把握するために、ElementExistsやFindElementで本当に要素が消滅しているかを確認してみると良いかもしれません。(アプリケーションによっては単に非表示になっているケースもありますので。)

@kaishii
Hi!

Wait Element Vanishの回答ではありませんが、IEから名前を付けてダウンロードの保存をしようとしているなら、下記、ご参考まで。

UiPath Go!で部品として使える
「Save as File Download for Internet Explorer」が公開されてます。
(Go!からダウンロードしてSaveAsDownloadGUI.xamlのファイルです。)
ただし、日本語版のWindowsで使用する場合は、各アクティビティのセレクターの変更と文字列で"download has completed."と入れている部分を"ダウンロードが完了しました。"に変更が必要です。そのまま使わなくてもダウンロードが完了しているかを監視するシーケンス「Monitor Download」は、参考になるかと思います。

2 Likes

Jumbo様

返信ありがとうございます。
下記のような実験を行ってみました。

1.新規のワークフローを作成し、Wait Element Vanishのみを配置
2.対象にExcelの名前を付けて保存ダイアログを設定
3.Excelを終了させた状態でワークフローを実行

WaitForReadyを変化させながらワークフローを起動すると、どの場合もワークフローは一瞬で終了しました。

それからご指摘の「セレクタが正しく認識されていない」件ですが、Wait Element Vanishの直後に、
同一のセレクタでUiElementExistsでFalseが戻ってきていますのでセレクタは間違いないと思います。

よく「フローを貼れ」という指摘がありますので、画像ですが貼っておきます。
Flow

Yoichi様

返信ありがとうございます。私も2だと思っています。

Wait Element Vanishがタイムアウトした後にUiElementExistsで検査するとFalseが返ってきますので、
対象が消滅しているのは間違いないと思います。もちろん目視でも消えていることを確認しています。

消滅しているのに待ち続けている

一度対象の要素を認識しないと機能しないのでは?

と思ったのですが、Wait Element Vanish単体で実験すると全くそんなことは無く混乱しております。

@kaishii

気になったので追試してみましたが、結果は同様でした。

  1. 対象が表示されている場合: 対象が消えるまで待ち続ける。消さないとタイムアウト
  2. 対象が表示されていない場合: 即wait element vanish から抜ける。タイムアウトはしない
    (*wait for readyオプションや、elementを使用しても結果は同様。)

バグの可能性もありますし詳細は不明ですが、elementの有無を確認したいのであれば、
element existをループで回すとかの方が、安全かもしれませんね。。。

私もそう思います。
気分が乗ればサポートに問い合わせてみますが、レスポンスが非常に悪いので。

Jun1様

アドバイスありがとうございます。

早速ダウンロードして内容を確認しました。
黄色い通知バーの文字列が「ダウンロードが完了しました。」に変化するまで待つやり方ですね。
大変参考になります。