7
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

【UiPath】Edge(IEモード)で利用しているWebサイトでのダウンロード処理の自動化方法

Last updated at Posted at 2023-05-11

1.はじめに

 社内システムのWebサイトによっては最新のEdgeやChromeで動作保証や動作ができないなどの都合により、「EdgeのIEモード」を利用している場面があるかと思います。RPAを利用した自動化しようとした場合に操作に苦戦する場合があり、その際の対処方法をご紹介します。特にWindows10とWindows11でダウンロードダイアログの表示動作が異なるため、その点に着目してご紹介します。
 具体的なユースケースとしては、以下に示すUiPath Demo サイトから「サンプルのダウンロード」ボタンをクリックし、ファイルダウンロードを行い、名前を付けて保存するというケースを想定します。
image.png

2.環境情報

利用する環境は以下の通りとなります。

ソフトウェア名 バージョン情報 その他
OS Windows10 および Windows11
UiPath Studio 22.10.5
UiPath.UIAutomation.Activities 22.10.5
Webブラウザ Egde(IEモード) 設定より「ダウンロード時の動作を毎回確認する」を有効化
Webサイト https://www.expense-demo.com/

3.Windows10の場合における対応方法

 「サンプルのダウンロード」ボタンをクリックすると以下の画面のように別のウィンドウダイアログが表示されます。
image.png

直面する問題

 「名前を付けて保存」ボタンを操作しようと、Edgeブラウザの「アプリケーション/ブラウザを使用」アクティビティ内で「クリック」アクティビティを利用しようとした場合、以下のようなダイアログメッセージ「指定した要素は対象のアプリケーション/ブラウザーに属していません。」が表示され、操作ができません。
image.png

対処方法

 今回の場合、「ブラウザーを使用」内に新たに「アプリケーション/ブラウザを使用」アクティビティを配置し、ブラウザ上に表示されたウィンドウはダイアログを「自動化するアプリケーション」に指定すことで対処することができます。
ワークフローは以下のようになります。
image.png
 大抵の場合、ブラウザから起動されたウィンドウは「アプリケーション/ブラウザを使用」アクティビティのプロパティにあるオプション「ウィンドウ アタッチモード」が「アプリケーションインスタンス」となっていれば、別の「アプリケーション/ブラウザを使用」を配置する必要はありません。(既定値は「アプリケーションインスタンス」)
 一方で、同オプション設定で「単一ウインドウ」となっている場合には同じような操作がどの画面でも必要となります。
 さらに、この後表示される「名前を付けて保存」ダイアログ画面の「名前を付けて保存」ボタンは先ほど配置したクリックアクティビティと同様の「アプリケーション/ブラウザを使用」アクティビティ内に配置することで操作ができます。

考察

 アプリケーションパスを見ると、「名前を付けて保存」ダイアログ画面はIEに属していることがわかります。このように、別のアプリケーションによって起動されているウィンドウは操作ができない旨のメッセージが表示されることがあるため、「アプリケーション/ブラウザを使用」アクティビティを配置して、対処をしていきましょう。

ワークフロー全体像

 ワークフローの全体像は以下の通りとなります。
image.png

4.Windows11の場合における対応方法

 「サンプルのダウンロード」ボタンをクリックすると以下の画面下部にダイアログが表示されます。
image.png

直面する問題

 「名前を付けて保存」ボタンを操作しようと、Edgeブラウザの「アプリケーション/ブラウザを使用」アクティビティ内で「クリック」アクティビティを利用しようとした場合、以下のようなダイアログメッセージ「指定した要素は対象のアプリケーション/ブラウザーに属していません。」が表示され、操作ができません。
 なお、「名前を付けて保存」を表示するために、保存ボタン横の▼ボタンは操作することは可能です。
image.png

対処方法

 「名前を付けて保存」ボタンは、Windows10と同様に「ブラウザーを使用」内に新たに「アプリケーション/ブラウザを使用」アクティビティを配置して対処しようとしますが、ウィンドウが常時表示されるものではないため、エラーとなってしまいます。そこで、「ブラウザーを使用」内に「キーボードショートカット」アクティビティを利用し、「名前を付けて保存」ボタンのショートカットである「A」キーを操作することで、動作を実現します。
image.png

 さらに、「名前を付けて保存」ダイアログ画面も「指定した要素は対象のアプリケーション/ブラウザーに属していません。」が表示され、操作ができないため、「ブラウザーを使用」内に新たに「アプリケーション/ブラウザを使用」アクティビティを配置します。
image.png

考察

 Windows10のときと同様に、「名前を付けて保存」ダイアログ画面はIEに属していることがわかります。また、先ほど「キーボードショートカット」アクティビティにて操作した「名前を付けて保存」ボタンもIEに属している画面となります。このように、別のアプリケーションによって起動されているウィンドウは操作ができない旨のメッセージが表示されることがあるため、「アプリケーション/ブラウザを使用」アクティビティを配置して、対処をしていきましょう。

ワークフロー全体像

 ワークフローの全体像は以下の通りとなります。
image.png

5.参考

 ダウンロードの取得先が固定の場所や規定値Downloads(ダウンロード)フォルダとしている場合は、以下のように「ダウンロードを待機」アクティビティを利用することを推奨致します。
image.png
 本アクティビティ内には、ファイルダウンロード操作となる「クリック」アクティビティを配置します。基本的にはファイルダウンロード操作に該当するアクティビティ以外を配置しないでください。そのため、先ほどのワークフローでは「保存」ボタンを同アクティビティ内に入れていませんが、基本的には同じようにすることを推奨致します。
 また、本アクティビティを利用することで、ダウンロード完了まで待機されます。また、ダウンロードしたファイル情報を変数(例ではdownloadFIleInfoとしています)に格納することができます。
 同変数はFileInfoクラス型の変数となるため、ファイル名のフルパスを取得する場合は以下のようにする必要があります。
 downloadFileInfo.FullName
 C:\Users\XXXX\Downloads\data.xlsx
なお、Nameとするとファイル名のみ(data.xlsx)が取得されてしまいますので、注意してください。

7
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?