【UiPath】Lesson4 / ダウンロードの処理

RPA
スポンサーリンク
スポンサーリンク

ダウンロードの操作

ネット上から情報をダウンロードする場合、ブラウザの種類でかわります。
個人的にはIEの通知バーで別名保存する場合の処理が難しいと感じています。

実行保存名前を
つけて保存
保存して実行
IE画面下通知バー画面下通知バー画面下通知バー画面下通知バー
CROMEリンクのクリック右クリックメニュー
Edge画面下通知バー画面下通知バー画面下通知バー
右クリックメニュー

ダウンロード通知バーの種類

まず、IEとEdgeでファイルをダウンロードする場合に画面下に出現する通知バーです。
実行・保存・キャンセル以外は、保存部分のプルダウンを選択する形になります。
IEの『別名保存が難しい』といったのは、このプルダウンメニュー内の選択が上手くいかないからです。

IE

Edge

IEで別名保存してみましょう

お題です

総務省統計局の平成22年国勢調査
https://www.stat.go.jp/data/kokusei/2010/index.html
内にある「市町村別人口順位及び世帯総数」のエクセルシートをD:\Kokusei\にRanking.xlsで保存してください。
※ダウンロードはセキュリティの問題でナーバスな操作なので、官庁のものを選びました。

実際には、下の赤枠内クリックでダウンロードする資料になります。

「ブラウザーを開く」のアクティビティを接続して
プロパティの
[入力]-[URL]に"https://www.stat.go.jp/data/kokusei/2010/index.html"
[ブラウザーの種類]にIE(デフォルト)を設定します。

さらにこのアクティビティをダブルクリックします。「Do」という名称のシーケンスがあるのでその中にアクティビティをドロップしていきます。
※デフォルトでシーケンスになります。フローチャートにしたい場合はシーケンス内にフローチャートをいれます。

最初に「ウィンドウを最大化」を接続します。

「クリック」プロパティを接続します。

クリックする要素の選択画面がでますので、赤枠内を指定します

アクティビティは以下の様に表示されます

ブラウザーをアクティブにして、赤枠をクリックします。

ブラウザー下部にダウンロード通知バーが表示されますので。UiPathのウィンドウをアクティブにします。

「クリック」アクティブを配置して
同様にして「名前を付けて保存」を表示させるため、保存ボタン横の▼要素をクリックする動作をいれます。

次にダウンロード通知バーの赤枠内メニューの中から「名前を付けて保存」の要素をクリックしますがここで一工夫必要です。
この、「名前を付けて保存」をなかなか選択できないからです。何種類か試してみましたが、失敗した例を含めて紹介します。

「名前を付けて保存」を実行

【失敗】「名前を付けて保存」の要素を取得して実行

実は、上記と「クリック」アクティビティと同じ流れで「名前を付けて保存」の要素を取得することができません。
このメニューはIEのウィンドウがアクティブな時しか表示されないからです。つまりIEでメニュを表示させておいて、UiPathのウィンドウに切り替えて登録しよとしたときには既に「名前を付けて保存」のメニューは消えています。

「名前を付けて保存」の要素がとれる方法(レコーディングを使う)で取得します

通知バー上の保存から名前を付けて保存の選択をレコーディングすると以下の結果が得られます。この結果をコピーして接続します

以下の様になるので、一度実行してみます。
「名前を付けて保存」のメニューが一瞬表示されるものの、すぐに消えて選択できませんでした。

【成功】「名前を付けて保存」のショートカットを押して実行+α

保存横の▼を押したあと、「名前を付けえて保存」のショートカットである「A」を入力してみます。以下の様に「ホットキーを押下の」のアクティビティを接続し、「A」を入力します。
ここで実行してみます

下の画面から先に進みませんでした。

この状態で「A」を入力すると、別名保存のダイアログが表示されたので「A」入力のタイミングが早すぎることが想像されます。タイミングが合わずに操作が空振りになるのはUiPathではよくあることです。
ここで、「ホットキーを押下」アクティビティを実施する前に1秒の待機時間を設けてみます。

下の様に「ホットキーを押下」アクティビティのプロパティにおいて
[共通]-[実行前の待機時間]を1000に設定します。

待機時間の単位はms、1s(秒)=1000msになります

ここまでで実行すると、次の様に「名前を付けて保存」のダイアログが表示されます。

ただし、私は以下の理由でタイマーの待機時間を作成してタイミングを合わせるのはやめています。理由は下記の通り
❶待機時間は短い方がよい、最適な待機時間を選定するのに試行錯誤が必要になるため
❷必要な待機時間は環境により変わるので、一定ではないため

本質は次の表示がされたら「A」を入力すればよいので、その条件を追加します。

事前にこの選択メニューが表示されている画面のスクリーンショットをとり、ペイントソフトに貼り付け100%で表示させておきます。
Altキー+Prt Scキーでスクリーンショットするとメニューが消えるので、Prt Scキーのみでスクリーンショットをとります。

以下の様に「ワークフロー」のアクティビティを接続し、この中に、[名前を付けて保存]のダイアログの処置を入れていきます。

まずは、フローチャートの中を次の様に接続します。

[クリック] アクティビティには、[名前を付けて保存]を出すためのクリック操作をいれます。(※再掲ですが)

[要素の有無を検出]のアクティビティを以下の様に設定します。
[ブラウザー内で要素を指定]では[名前を付けて保存]を設定できません。
そこでアクティビティ右の≡マークをクリックします

下のメニューが現れるので、[参考スクリーンショットを設定]を選びます

先にペイントソフトに表示した画像を選択します。

プロパティ内の
[出力]-[要素の有無]に 「MENU_ON」という変数を設定します。
この変数にはこの要素が表示されているときにTRUEが返されます

[フロー条件分岐]のプロパティに
[その他]-[条件]に「MENU_ON=True」を入力します。

分岐のTrue側に接続した[ホットキーを押下]アクティビティは次の様に設定します

これで別名保存のダイアログが表示されるので、あとはパス入力と[保存]をクリックするアクティビティを接続して完了になあります

RPA UiPath UiPath講座
スポンサーリンク
スポンサーリンク
シェアする
SATORINをフォローする
スポンサーリンク
みっどないとぱーぷる

コメント

タイトルとURLをコピーしました