Zipファイルダウンロードが実行モードのときのみ破損

UiPathで開発中のRobotで、Zipファイルを保存し、解凍する動作があるのですが、
この動作がデバックモードのときは成功するのに対し、実行モードのときは高い確率で失敗します。
エラー後、RobotでダウンロードしたZipファイル(見た目上は問題ない)をマニュアルで解凍しようとすると、解凍プロセスで「ファイルが空のため、解凍できません」というメッセージが表示されます。

image

「高い確率」と表現したのは、数回に1回は実行モードでも成功する場合があるためです。

また、下図のZipファイルを保存する際のウィンドウにおいて、ファイルパスとSaveボタンの前に時間を置くと(Delay Before)成功確率が上がることを発見しました。しかし、時間を長くしても、失敗することが0になるわけではありませんでした。

こちら、原因お心当たりある方はいらっしゃいますか?
よろしくお願い致します.

Studio Pro 2021.4.4 - 8/19/2021
Community License
EXE Installer
License Provider: Internal
Activation ID: UIP-0b31735028
Update Channel: Stable
Microsoft Windows 10 Pro 64-bit
5.0.4

ファイルがダウンロード中に解凍プロセスが動いてしまっている?

ありがとうございます。
ファイルダウンロードを確認するアクティビティを入れてあるので、その可能性は低いと思います。

こんにちは

実際の動作は確認しておりませんが、不可視となっている"OpenFile"の要素を検出して
しまっていませんでしょうか?FindElementのWaitVisibleオプションがOFFならONに
することにより改善するかもしれません。

1 Like

Yoichiさんの回答で解決しそうな気がしますが(要素検出が失敗している?)
似たようなことがあり、私は「ダウンロードが完了したか」は「指定フォルダのファイルが増えたか?」でチェックしています。

※ フォルダ内のファイルで、ダウンロード開始時刻よりあとのタイムスタンプを持つファイルが増えたか(tmpは一時ファイルなので除く)

2 Likes

ありがとうございます。
ご回答頂いた方法でやや成功率が上がったものの、50%以上の確率でエラーとなってしまいます。

「Wait for dowonload」というアクティビティを使用して、ダウンロード完了を確認するStepを入れてみましたが、結果は変わらずでした。取り急ぎ。

FindElementの
WaitVisibleをOFF→ON
に加え、
WaitForReadyをCOMPLETE
にすることで、現在3回連続成功しました。

@Yoichi さんご指摘の通り、

不可視となっている"OpenFile"の要素を検出

が原因だったようです。

Shinjiさんのご指摘も大変参考になりました。今後うまく行かなかった際は、ファイルタイムスタンプチェックも選択肢として考えたいと思います。

ご回答ありがとうございました。

こんにちは

結果の共有ありがとうございます。
WaitforReadyはページの読み込み完了の設定なので、今回の事象の直接の原因ではないかもしれません。(単にWaitがかかって現象が解消しただけで、真の原因は別かもしれません)しばらくは再発しないか注視いただくほうが良いかもです。

ありがとうございます。
今回の事象の再現性がないか、数回試行できるのは2日後になりますので、
その結果をもって、本件がcloseするか判断したいと思います。

1 Like

@Yoichiさん

ご指摘の通り、本質的な修正にはならなかったようで、先ほどError現象が再現してしまいました。
Error原因を探るために、前後にメッセージボックスを挟んで、ファイルの状態をチェックするなどを実施してみます。

他にError調査に有用な手段がありましたら、ご教示いただけますと幸いです。

こんにちは

Edge(Chromeも概ね同様と挙動と思いますが)の名前を付けてダウンロードのプロセスを今一度確認してみましたが、「開く」か「名前を付けて保存」の選択画面を表示する際に、裏ではすでに実態のダウンロードは進めていてこの時点では、.crdownloadという形式で保存されています。
可能性の一つですが、この「名前を付けて保存」をクリックするタイミングが早すぎる→後続の処理も間髪いれないため、不完全なファイルのまま処理が進んでいることはないでしょうか?切り分けとしては、「名前を付けて保存」をクリックする前に適当な時間の待機アクティビティを挿入することにより、効果有無確認できるかもしれません。

ご教示頂いた通り、「名前を付けて保存」の前に、待機アクティビティを挿入することで
動作が安定しました。
ネットワーク速度やPCスペック、ダウンロードファイルサイズによって、必要な待機時間が変化
することが懸念点として残りますが、ひとまずこの状態で解決とさせていただきたいと思います。

ありがとうございました。

1 Like

こんにちは

「待機」アクティビティで安定した旨承知しました。
ご認識の通り、「待機」に頼るのはあまりよろしくありませんので、名前を付けて保存の前に、Wait for downloadが使えそうならそれを使う、 @shinji さんが例示したような手法をとる、等が必要になるかと思います。

ありがとうございます。
「Wait for dowonload」は既に試したのですが、今回「待機」アクティビティを入れた箇所とは
異なる箇所(実際の保存先フォルダ)を監視しているためか、効果が見られませんでした。
「名前を付けて保存(Save As)」ボタン後の、ファイルパスを入れることや、「保存」ボタンを押すまでの部分で「Wait for Download」は効果を発揮するかと思います。

本件は、その以前、ブラウザ上のダウンロードボタンを押してから、「名前を付けて保存(Save As)」ボタンが表示されるまでの待機時間を長くすることで動作が安定しました。

This topic was automatically closed 3 days after the last reply. New replies are no longer allowed.