yuki1
December 19, 2017, 7:44am
1
Webアプリから自動でファイルをダウンロードするRPAを作成しています。
(初心者なのでRecording機能を使っています)
Webアプリのダウンロードボタンを押下すると、IEの通知バーが表示されます。
まずは「XXXXを保存しますか? 保存 キャンセル」
保存を押下すると
「XXXXのダウンロードが完了しました。 ファイルを開く フォルダーを開く ダウンロードの表示」
となります。
このIE通知バーの箇所がRPAでうまく動きません。
①ダウンロードができない
②数分何も動かなくなる、しばらくするとまた動き出す。
IEの通知バーを制御する方法がありましたら教えていただきたいです。
Yin
(h-yin)
December 19, 2017, 8:10am
2
UiPathはたまにこういうような問題が発生します。
このような事を解決するには、Webアプリのダウンロードボタンを押してから、On Element Appear のアクティビティを追加し、IEの通知バーをウッチしてもらい、On Element AppearのDoの中に、クリック等のアクティビティを実施すれば解決できるはずです。
yuki1
December 22, 2017, 5:09am
4
ご回答ありがとうございました。
On Element Appearを使用し、Doの中にClickアクティビティを入れたのですが、
エラーになってしましました。
Source: On Element Appear ‘DirectUIHWND’
Message: Activity timeout exceeded
Exception Type: ActivityTimeoutException
実行したところ、IEの通知バー「保存」のところにカーソルはあたるのですが、
押下されず、固まって、このexceptionがでます。
もうどうしようもないのでしょうか?
Yoichi
(Yoichi)
December 22, 2017, 6:41am
5
@yuki1 さん、こんにちは
IEのバージョンにもよると思いますが、IE11のダウンロード通知バー内のプルダウン付の保存ボタン直押しについて、UiPathと相性があまりよくない様に思います。ですので、保存ボタン横のプルダウンをクリックして、表示される保存メニューをクリックした方がよいような印象です。
またFind Element でもOn Element Appearと似たような動作が可能ですので、以下のような感じでいかがでしょうか?(こちらの方が原因の切り分けがし易いと思っています。)
1 Like
yuki1
December 22, 2017, 7:26am
6
早速のご回答ありがとうございます。
試してみたところ、Click’menu item保存(s)’までは進んだようです。
そこでエラーがでました。
Cannot find the UI element corresponding to this selector:
このメッセージで何が原因なのかわかればご教示いただきたく
よろしくお願いします。
yuki1
December 22, 2017, 7:30am
8
メッセージが途中で切れてしまいました。
“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’
Yoichi
(Yoichi)
December 22, 2017, 7:53am
9
こんにちは
Selectorの設定がうまくいっていないか、あるいは対象が出ていないかのどちらかと思います。実行時に画面上に以下のメニューは表示されていますでしょうか?
yuki1
December 22, 2017, 8:10am
10
実行時には表示されていません。
表示はdrop down buttonの位置にマウスがあたっている状態で、
固まっているように見えます。
Yoichi
(Yoichi)
December 22, 2017, 8:44am
11
こんにちは
遠隔ですとなかなか状況がわからないので、ワークアラウンドの案を下記します。
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
yuki1
December 26, 2017, 6:54am
12
ご回答ありがとうございました。
無事解決できました!
以下実装したものです。
①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
Yoichi
(Yoichi)
December 28, 2017, 2:41am
13
こんにちは
IEでの ctrl+n はフォーカスを通知バーに移します。
また通知バーにフォーカスが移った後のスペースは、フォーカスが当たっているボタンの実行になります。
ちょっと挙動が違いますので、当方の環境とかなり異なるのかもしれません。
追加のお話はトピックのテーマと異なりますので、さらっと方向性を記述しますが、
特定のアプリケーションウインドウを閉じるためには、Open Application やAttach Appliction などのアクティビティで Output - ApplicationWindowプロパティ でWindow型の値を取得できますので、Close Windowアクティビティ のInput - UseWindowプロパティ で明示的にこれを指定してやります。
対象の要素が出ているにも関わらずClickアクティビティ で時間がかかる現象は、WaitForReady プロパティの値をNoneにすると解決するケースが多いです。なお読み込みタイミングの問題が発生する場合は、FindElementアクティビティ などを併用して実行タイミングを調整すると良いと思います。
2 Likes
yuki1
December 28, 2017, 5:11am
14
ありがとうございました!
トピックテーマと異なる質問を追加してしまい、申し訳ございません。
試してみたところ、
WaitForReadyのプロパティをNoneにすることで解決しました。
またもうひとつの問題は「ApplicationWindowプロパティでWindow型の値を取得」のやり方がわからず未解決です。
もう少し試して出来なかったら、別のトピックをあげて質問しようかと思います。
丁寧にご回答いただきありがとうございました。
2 Likes
saw
(saw)
March 23, 2018, 5:19am
15
Yoichiさん
お疲れ様です。ソーです。
大変助かりました。ご教示いただいたとおりDownloadできました。
追加として、Downloadされたファイルを同じFolderに入れたいですが、今の仕組みでかのうでしょうか?
教えていただければ、幸いです。