【Blue Prism】【Chrome】名前を付けて保存オブジェクトを作ってみた

# はじめに
自動化したい業務の中には、ブラウザからファイルをダウンロードする処理があります。<br>
例えば**指定したフォルダに指定したファイル名で保存したい！** など。<br>
![名前を付けて保存.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/660650/a54724aa-00dd-babf-fb44-bb7ae6ee5a60.png)
そこで今回は、**名前を付けて保存**オブジェクトを作成してみましたのでそれをご紹介したいと思います！<br>
# 今回使用した動作環境
* Blue Prism ver6.8.0
* Google Chrome ver102.0.5005.63
# 自動化する内容
今回は、名前を付けて保存の画面操作を自動化したいので
処理の流れは以下のようになっています。

| 手順 |  処理内容  |
|  :----:  |  :----:  |
|  1  |  ファイル名を変更する|
|  2  |  保存ボタンをクリックする|

# 実装してみよう
では、早速実装してみましょう！<br>
今回は、Chrome用に作成してみます。<br>

## オブジェクトの作成
### 名前を付けて保存ウィンドウを表示する
まず初めにChromeから**名前を付けて保存**ウィンドウを表示させます。
例：Googleで画像を検索し画像を保存する など
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/660650/bb85b653-fb5f-11d0-61f7-54adf2e34f4d.png)

### オブジェクトを作成する
オブジェクトを新規で作成します。アプリケーションモデラーのプロパティは以下のように設定しています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/660650/d6cfd426-facb-e296-6023-f9379b722913.png)

上記以外のプロパティはアプリケーションウィザードで以下のように設定します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/660650/bb633568-fe5b-0c41-5e21-13a11a6432b5.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/660650/5bde643c-3c95-a406-4448-442824ccacba.png)

### アタッチのアクションを作成する
アタッチ用のアクションを以下のように実装し、各ステージのプロパティを設定します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/660650/e9e973f4-ced7-581a-76c5-14d8a2051f89.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/660650/47539e9c-388a-650d-ac5c-ace03a6bd157.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/660650/31bbd4bd-1bc6-29d7-38a8-dc7db296b14a.png)

操作ステージ**アタッチ**の入力プロパティには**プロセス名**,**ウィンドウタイトル**を設定します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/660650/ba600e1e-8594-5496-21be-42026903bae7.png)
パラメータは以下の表で設定します。
|  データアイテム名  |  データ型  |  説明  |  パラメータ  |
| ---- | ---- | ---- | ---- |
|  プロセス名  |  テキスト  |  アタッチ先のプロセス名  |  chrome  |
|  ウィンドウタイトル  |  テキスト  |  アタッチ先にウィンドウタイトル（ワイルドカードでも可）  | 名前を付けて保存 |

## 必要な要素をスパイする
アタッチができたら次に要素をスパイします。
今回操作する箇所としては以下赤枠の2か所になりますのでここをスパイしていきます。
![名前を付けて保存_スパイ.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/660650/8ff337ae-e1e9-aa07-b9fa-fbe52bed0df6.png)

### ファイル名のテキストボックスをスパイ
まずはじめにファイル名横のテキストボックスをスパイします。
今回スパイモードは**Win32モード**で行います。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/660650/c85b3680-bfcb-495f-7959-76a75df0bf25.png)

要素名,各属性のマッチングは以下で設定します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/660650/579ff223-714f-5c8f-5f1d-820bda5723b0.png)

### 保存ボタンをスパイ
次に保存ボタンをスパイします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/660650/a3e1b796-1702-06ed-3a8e-9710053c4d8a.png)

要素名,各属性のマッチングは以下で設定します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/660650/8a93d67d-6722-a23e-30a1-5e3a978d74b0.png)

## アクションを作成する
これで必要な要素のスパイは終わったので、次はアクションを作成します。
今回は以下2アクションを作成します。
|  アクション名  |  説明  |
| ---- | ---- |
|  ファイルパス入力  |  **textbox_ファイル名_win32**にファイル名を入力する  |
|  保存ボタンクリック  |  **button_保存_win32**をクリックする  |

### ファイルパス入力アクションを作成
**textbox_ファイル名_win32**に書き込むアクションを作成します。
以下のように実装し、各ステージのプロパティを設定します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/660650/20fa161f-7264-caca-3459-aed3fbb3e370.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/660650/6facac62-b7c4-64e7-11c7-39b4377a82ce.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/660650/fc4445b4-28f3-f918-24a5-ccf5c1943011.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/660650/b2486ddd-ccbd-5e77-258a-7dc6d0a5618f.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/660650/adaecca6-20fb-f2f7-f7d4-f630f7d8b799.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/660650/08269ab8-afda-eed2-bfb0-3780268a4f32.png)

### 保存ボタンクリックアクションを作成
次に**button_保存_win32**をクリックするアクションを作成します。
以下のように実装し、各ステージのプロパティを設定します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/660650/8a3889ed-2e57-3a26-7f73-3b5d1b9d7227.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/660650/dc5fea13-fc8d-5a8d-7603-6c403f4cd45b.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/660650/8ac98750-fd1b-98b1-f527-3ab0440bc433.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/660650/ae13e7e1-f65e-6303-795e-fbbbe9fbb87b.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/660650/7c50da50-983c-377a-fb24-7da209aac035.png)

## テスト用にプロセスを作成
実行用に以下のプロセスを作成してみました。
これを実行して動作を確認したいと思います。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/660650/65600edd-2a39-53bf-ce3f-7832b8dd7e68.png)
**ファイルパス入力**アクションには以下のプロパティを設定しています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/660650/0cca9535-3c5d-afb2-5e75-1669d87a4732.png)
|  データアイテム名  |  説明  |
| ---- | ---- |
|  ファイルパス保存先  |  保存先のファイルパスを設定する  |

以下のようにフルパスで設定する事で**保存したいフォルダ・ファイル名**で保存する事ができます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/660650/d2d4b646-6eee-c55b-35ab-84d4d376ce41.png)
今回は拡張子を付けて設定していますが、エクスプローラの設定でファイル名拡張子を非表示にしている場合は、保存するファイル名に拡張子を含まない形式にします。
![無題1-2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/660650/ac11e80e-30fe-5119-00ef-09b63a7d1b88.png)

# 実行してみよう
これで必要なプロセス・オブジェクトの実装は完了しました。
それでは実行してみましょう！

**名前を付けて保存**ウィンドウが表示された状態で実行すると・・・
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/660650/d464bc7d-3478-520e-e7f5-6cce018e23fe.png)
以下赤枠に指定したファイル名が表示されダウンロードができました！
フォルダを確認するとちゃんと指定したファイルパスで保存されていますね！
![プロセス実行.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/660650/e618f795-0b34-f104-7be1-ca66470a099f.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/660650/ab7baf8f-ded7-0a77-fc2e-f58f1a167d22.png)

# さいごに
いかがだったでしょうか？

今回は**名前を付けて保存**ウィンドウの操作しファイルをダウンロードする方法についてまとめてみました。
ブラウザからダウンロードする業務は多いかなと思いますので、是非試してみてください。