【更新中】UiPath RPA Academyまとめ(Foundation編)

#概要
UiPath RPA Academyを進めていくうえで、本当に欲しい情報はPDFやスライドとして提供してくれなくて
悲しかったので分かる範囲でまとめていこうと思いました。
そういえばこのレッスンでは何を習ったんだっけ？動画だと本当に知りたいところを探すのが大変なんだよな…というときに見れれば幸いです。
(やろうと決意したのがLesson5からなので、それ以前は追って更新します)

#Lesson1 UiPath概要

#Lesson2 入門知識

#Lesson3 データ操作

#Lesson4 レコーディング機能

#Lesson5 UI上の高度な操作
###入力時(Click/Type Into)のプロパティ
|プロパティ|互換性|バックグラウンド実行|スピード|ホットキー操作|フィールド内自動削除|
|:--|:-:|:-:|:-:|:-:|:-:|
|デフォルト(Default)|100%|×|50%|○|×|
|ウインドウメッセージ(WindowMessages)|80%|○|50%|○|×|
|シミュレート(Simulate Type/Click)|70%|○|100%|×|○|
・バックグラウンド画面に対し処理を行う場合やホットキー操作がある場合は **WindowMessages** にチェック
・フィールド内がクリアされても問題がない、とにかくスピード重視！の場合は **Simulate Type(Click)** にチェック
・上記２つの設定だと処理が安定しない場合のみ **Default** (何もチェックしない)
・(Type Intoのみ)バックグラウンド実行で処理する場合は **Activateのチェックを外しておく**
公式ガイド：[入力メソッド](https://studio.uipath.com/lang-ja/v2018.3/docs/input-methods)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/176879/260947e6-a609-3719-fd14-c635e96955cd.png)

###画面スクレイピング
####各メソッドの性能
| 機能 |速度|精度|バックグラウンド実行|テキスト位置抽出|隠れたテキストの抽出|Citrix(仮想環境)サポート|
|:-:|:-:|:-:|:-:|:-:|:-:|:-:|
|フルテキスト(FullText)|100|100%|○|×|○|×|
|ネイティブ(Native)|80|100%|×|○|×|×|
|OCR|30|98%|×|○|×|○|
・文字抽出で一番汎用性が高い(要素単位で判別、バックグラウンドでも動作する)のは**Full Text**
・画面のどこにあるか、という文字の位置を取得(Get Words Info)するには**Native**
　※ただし位置を判定するためには読み取り対象を表示しておく必要あり
・仮想環境や画像といった、文字列として指定できない場合は**OCR**
　公式ガイド：[出力メソッドまたは画面スクレイピングメソッド](https://studio.uipath.com/lang-ja/v2018.3/docs/output-or-screen-scraping-methods)

※OCRは精度に難ありのため、画面情報をUiPathへ提供しても問題ないのであれば[「AI Computer Vision」アクティビティ](https://activities.uipath.com/lang-ja/docs/about-the-ai-computer-vision-activities-pack)を
　使用するのも一つの手

####画面スクレイピング手順
　１．DESIGNタブより、「ScreenScraping」をクリック
　２．要素指定モードになるので、データを抽出したい要素を選択する
　３．Screen Scraper Wizardが開き、読取結果が表示されるので必要に応じて機能を指定して調整する
　　　※デフォルトでは**FullText**での検出となる
　４．読取条件を指定後、Finishをクリック

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/176879/d65ebb7b-66bc-605e-a3f3-e2f54a109dce.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/176879/8d9965b2-80e0-60cd-3a34-0401971c82e2.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/176879/f344e1c5-b185-f0fd-7005-166620b7b355.png)

#####(補足)OCR言語のインストール方法
GoogleOCRはデフォルトでは英語(eng)しかインストールされていないので、必要に応じて言語をインストールする
詳しくは[公式ガイド](https://studio.uipath.com/lang-ja/docs/installing-ocr-languages#section-google-ocr)を参照

#Lesson6 セレクター
###完全セレクターと部分セレクターの違い
####完全セレクター
>・UI 要素 (トップレベルウィンドウを含む) の識別に必要なすべての要素が含まれます。
・ベーシックレコーダーによって生成されます。
**・複数のウィンドウを切り替える場合にお勧めします。**

####部分セレクター
>・デスクトップレコーダーによって生成されます。
・トップレベルウィンドウについての情報は含まれません。
・部分セレクターを含むアクティビティは、トップレベルウィンドウの完全セレクターを含むコンテナー (**[ブラウザーにアタッチ (Attach Browser)]** または **[ウィンドウにアタッチ (Attach Window)]**) で囲まれます。
**・同じウィンドウで複数のアクションを実行する場合にお勧めします。**

引用元：[完全セレクターと部分セレクター](https://studio.uipath.com/lang-ja/v2018.3/docs/full-versus-partial-selectors)

操作をレコーディングする場合にどこから始めるかをある程度限定するのが**部分セレクター**
限定せずに操作するのが**完全セレクター**

###動的セレクターについて
セレクター内で可変の箇所がある場合には、**ワイルドカード**を用いて動的セレクターを作成する
(例：ファイル指定時に、ファイル名の末尾にタイムスタンプが押されている場合など)
公式ガイド：[ワイルドカードの付いたセレクター](https://studio.uipath.com/lang-ja/v2018.3/docs/selectors-with-wildcards)

| ワイルドカード | 意味 |
|:-:|:-:|
| * |文字数に制限なく置き換える|
| ? |1文字のみ置き換える|
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/176879/b5ac8fca-e903-8808-4adc-0703c5a2c363.png)

###インデックス(idx)について
セレクターの要素を指定する属性の1つ
指定要素を特定する属性が足りない場合、順番に1,2...と振られる特殊な属性
⇒要素の増減によって指定箇所が左右されるので使用することは推奨されていない
  ※同じ名前のファイルを同一フォルダ内に入れると○○(1)、○○(2)といった形で仮の名前が付くのに似たイメージ

###セレクターに変数を使用する方法
セレクターの指定を全て文字列として扱うため、変数を入れる箇所以外は**"(ダブルコーテーション)**で囲み、+もしくは&で
前後のセレクターの文字列と結合する
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/176879/32fe12c0-b9f3-2cb7-07d2-920250eb3e43.png)

###アンカーベース(Anchor Base)について
他のUI要素をアンカーとして使用して、UI要素を検索するコンテナ
入力したいテキストボックスに信頼できるセレクターがないなど、使用したい要素を特定する方法がない場合に使用する
Anchorとして使用できるのは**Find Element**アクティビティ、もしくは**Find Image**アクティビティの2種類
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/176879/9c2d2e6d-ac27-bc86-1b26-c4c1e48cb696.png)

公式ガイド：[Anchor Base](https://activities.uipath.com/lang-ja/docs/anchor-base)

###相対パス

#Lesson7 画像とテキストの自動化

#Lesson8 高度なCitrixの自動化
#####Highlightアクティビティ
FindImageアクティビティの出力変数をもとに、見つかった要素の位置に対して枠を表示する（UI Explorerみたいな感じ）

アプリケーションの起動は以下の方法がある
　１．デスクトップアイコンをダブルクリック
　　　⇒背景が変わっても動くように、指定範囲に映り込ませないよう注意
　２．アプリケーションにショートカットキーを設定し、ホットキー操作でショートカット起動
　３．ファイル名を指定して実行する
　　　⇒ただしリモート環境が最大化されていない場合、元環境で反応してしまうためリモデ最大化⇒Win + R

#Lesson9 Excelとデータテーブル

#Lesson10 PDFの自動化

#Lesson11 メールの自動化

#Lesson12 デバッグと例外処理

#Lesson13 プロジェクト構成