Ieの通知バーが表示されたときの動きについて

Webアプリから自動でファイルをダウンロードするRPAを作成しています。
(初心者なのでRecording機能を使っています)
Webアプリのダウンロードボタンを押下すると、IEの通知バーが表示されます。
まずは「XXXXを保存しますか? 保存 キャンセル」
保存を押下すると
「XXXXのダウンロードが完了しました。 ファイルを開く フォルダーを開く ダウンロードの表示」
となります。

このIE通知バーの箇所がRPAでうまく動きません。
①ダウンロードができない
②数分何も動かなくなる、しばらくするとまた動き出す。

IEの通知バーを制御する方法がありましたら教えていただきたいです。

UiPathはたまにこういうような問題が発生します。
このような事を解決するには、Webアプリのダウンロードボタンを押してから、On Element Appear のアクティビティを追加し、IEの通知バーをウッチしてもらい、On Element AppearのDoの中に、クリック等のアクティビティを実施すれば解決できるはずです。

ご回答ありがとうございました。
On Element Appearを使用し、Doの中にClickアクティビティを入れたのですが、
エラーになってしましました。

Source: On Element Appear ‘DirectUIHWND’
Message: Activity timeout exceeded
Exception Type: ActivityTimeoutException

実行したところ、IEの通知バー「保存」のところにカーソルはあたるのですが、
押下されず、固まって、このexceptionがでます。

もうどうしようもないのでしょうか?

@yuki1 さん、こんにちは

IEのバージョンにもよると思いますが、IE11のダウンロード通知バー内のプルダウン付の保存ボタン直押しについて、UiPathと相性があまりよくない様に思います。ですので、保存ボタン横のプルダウンをクリックして、表示される保存メニューをクリックした方がよいような印象です。
またFind Element でもOn Element Appearと似たような動作が可能ですので、以下のような感じでいかがでしょうか?(こちらの方が原因の切り分けがし易いと思っています。)

download-bar

1 Like

早速のご回答ありがとうございます。
試してみたところ、Click’menu item保存(s)’までは進んだようです。
そこでエラーがでました。
Cannot find the UI element corresponding to this selector:

このメッセージで何が原因なのかわかればご教示いただきたく
よろしくお願いします。

メッセージが途中で切れてしまいました。
“message”:"Click ‘menu item 保存(S)’ :
Cannot find the UI element corresponding to this selector:
wnd app=‘iexplore.exe’ cls=‘#32768
ctrl name=‘コンテキスト’ role=‘popup menu’
ctrl automationid=‘53408’

こんにちは

Selectorの設定がうまくいっていないか、あるいは対象が出ていないかのどちらかと思います。実行時に画面上に以下のメニューは表示されていますでしょうか?

sub_dialog_download

実行時には表示されていません。
表示はdrop down buttonの位置にマウスがあたっている状態で、
固まっているように見えます。

こんにちは
遠隔ですとなかなか状況がわからないので、ワークアラウンドの案を下記します。

1は同じです。通知バー出るまで待つためのアクティビティです。

2はブラウザにSend hotkeyで alt+n を送っています。
当方の環境では以下のSelectorにしています。
<wnd app=‘iexplore.exe’ cls=‘IEFrame’ title=‘* - Internet Explorer’ />
<wnd cls=‘Client Caption’ />

3は通知バーにSend Hotleyで tab を送っています。
当方の環境では以下のSelectorにしています。
<wnd app=‘iexplore.exe’ cls=‘IEFrame’ title=‘* - Internet Explorer’ />
<wnd aaname=‘通知’ cls=‘DirectUIHWND’ />

4は通知バーにSend hotkeyで スペースを送っています。(何も見えませんがスペースが入力されています。
Selctorは3と同じです。

一度試してもらえればと思います。

3 Likes

ご回答ありがとうございました。
無事解決できました!
以下実装したものです。
①Find Element ‘split button 保存’
②send hotkey → Alt+n
③send hotkey → スペース
④Find Element ‘push button ファイルを開く’
⑤send hotkey → Alt+n
⑥send hotkey → スペース

ご教示いただいた「3.通知バーにtabを送る」と、「キャンセル」ボタンを押下する仕様になってしまったので、
それは実装しませんでした。
Alt+n と スペースは何を意味しているのでしょうか?
わからないのですが、とりあえずうまくいきました。。。

ところで、IEの通知バー問題がクリアされると、次の問題が発生しました。
Webアプリからダウンロードされたテキストファイルを一度表示したあと、閉じて、もとのWebアプリに戻って後続処理を実行していきたいのですが、

(1)テキストファイルを閉じる方法がわからない。
上記⑥に続いて、send hotkeyアクティビティを使って、Alt+F4をしてみたところ、もとのWebアプリが閉じられてしまった。
Get active window→Close windowアクティビティでも同様。
(タイミングによっては、うまくいくときもあります。 Textファイルが表示されるのを待つアクティビティを
挟めばうまくいくのでしょうか)

(2)テキストファイルを表示したあと、もとのWebアプリに戻って後続処理がしたい。
Attach BrowserのDoの中に、Webアプリのボタンを押下する処理を追加したところ、
Webアプリが、動きだすまでに数十秒~数分程度待ち時間がある。
(待てば、自然に動き出す)

もしよい解決方法がありましたらご教示ください。よろしくお願いします。

1 Like

こんにちは

IEでの ctrl+n はフォーカスを通知バーに移します。
また通知バーにフォーカスが移った後のスペースは、フォーカスが当たっているボタンの実行になります。
ちょっと挙動が違いますので、当方の環境とかなり異なるのかもしれません。

追加のお話はトピックのテーマと異なりますので、さらっと方向性を記述しますが、
特定のアプリケーションウインドウを閉じるためには、Open ApplicationAttach Applictionなどのアクティビティで Output - ApplicationWindowプロパティでWindow型の値を取得できますので、Close WindowアクティビティのInput - UseWindowプロパティで明示的にこれを指定してやります。

対象の要素が出ているにも関わらずClickアクティビティで時間がかかる現象は、WaitForReadyプロパティの値をNoneにすると解決するケースが多いです。なお読み込みタイミングの問題が発生する場合は、FindElementアクティビティなどを併用して実行タイミングを調整すると良いと思います。

2 Likes

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

トピックテーマと異なる質問を追加してしまい、申し訳ございません。
試してみたところ、
WaitForReadyのプロパティをNoneにすることで解決しました。
またもうひとつの問題は「ApplicationWindowプロパティでWindow型の値を取得」のやり方がわからず未解決です。
もう少し試して出来なかったら、別のトピックをあげて質問しようかと思います。
丁寧にご回答いただきありがとうございました。

2 Likes

Yoichiさん
お疲れ様です。ソーです。

大変助かりました。ご教示いただいたとおりDownloadできました。
追加として、Downloadされたファイルを同じFolderに入れたいですが、今の仕組みでかのうでしょうか?

教えていただければ、幸いです。