Webサイトの自動化処理は、RPAが流行る前から組むことが出来ていました。
しかしこれも、RPAソフトの登場により、とても簡単に構築できるようになりましたね。
StudioXでは、アプリ/Web系のアクティビティを使う事で、汎用的にアプリ/Webの自動化処理を組むことできます。
この記事では、土台となる[リソース]について解説します。
もくじ
アプリケーション/ブラウザーを使用(リソース)
デスクトップ上で開いているすべてのアプリケーションまたはWebページを使用できます。(ガイドはこちら)
アプリケーション、またはWebブラウザーを操作する場合、そのアプリ(Webサイト)をリソースで指定する必要があります。
詳しくは、リソースとアクションの組み立てルールを参考にしてください。
そして、このリソースの中に、クリックやテキスト入力などの操作を追加し、自動化処理を組み立てていきます。
ここでは、以下の項目について解説します。
- 自動化するアプリケーションを指定
- オプションメニュー
- ウィンドウアタッチモード
- ウィンドウサイズの変更
- オープン動作
- クローズ動作
- 入力モード
- シークレット/プライベートウィンドウ
- [ユーザーデータフォルダーパス]と[モード]
- [入力要素]と[出力要素]
- エラー発生時に実行を継続
- タイムアウト
自動化するアプリケーションを指定
ターゲットの指定
アプリケーションとWebページでは、指定方法が少し異なるので、それぞれ解説します。
いずれの場合も、操作対象のアプリケーションやWebページをあらかじめ開いておいてください。
アプリケーション(単体)
アプリケーションには、そのアプリ単体で機能するものと、ファイルを編集する編集用アプリの2種類があります。
アプリ単体で機能するものは、例えば「電卓」がひとつの例でしょう。
電卓を指定する場合は、以下の手順になります。
アプリケーション(ファイル指定)
メモ帳やPDF、画像などのように、ファイルを実行アプリケーションで開くケースも多いですよね。
この場合も、予めファイルを開いておき、その画面を指定します。
ただ、それだけでは実行アプリケーションの指定しかされませんので、加えてファイルの指定が必要です。
ファイルを指定する手順は以下のとおり。
今回は[テキスト]から直接パスを指定しましたが、もちろん、[ノートブック]など他のメニューからパスを呼び出しても構いません。
ファイルパスを取得
ところで、ファイルのパスってどのように取得したらいいのでしょうか?
いくつか方法はありますが、おそらく簡単なのは以下の方法ですね。
パスを取得したいファイルを[Shift]+[右クリック]
これで、クリップボードにファイルのパスがコピーされます。
コピーしたテキストには、下記のように両側に「”」が付いているので、削除して使うといいですね。
"C:\Users\[ユーザー名]\Desktop\サンプルテキスト.txt" |
一部ファイルはファイルパスが自動入力される
一部のファイルは、実行プログラムとともに、ファイル名も自動的に反映されます。
ガイドによると、対象は4種類です。
- Javaアプリ
- Office Suiteアプリ
- Adobe Acrobat
- Windowsファイルエクスプローラー
Office Suiteアプリとは、つまり、Word、Excel、PowerPointのことですね。
確認したところ、上記3ファイルは自動で反映されました。
しかしOffice Suiteでも、Outlookメールや、Publisher、Accessなどのファイルでは自動反映されません。
Adobe Acrobatは、PDFファイルのことですね。
Windowファイルエクスプローラーとは、つまりフォルダーのことです。

Webページ
Webブラウザーを操作する場合は、StudioXに拡張機能をインストールしておく必要があります。
まだの方は、この記事を参考にどうぞ。
UiPath StudioXのインストール【Community Edition】
Webページを指定する前に、予め自動化処理したいアプリケーション(Webページ)を開いておきましょう。
Webサイトを指定した後は、[ブラウザーのURL]の[+]からURLを編集し直すことができます。

また、(
の右隣)をクリックすると、指定のURLをWebブラウザーで開きます。
既にサイトが表示されていても、別ウィンドウで開かれます。
オプションメニュー
[オプションメニュー]とは、アプリ/Webの指定後に表示されるメニューです。
画面上でターゲットを指定
ターゲットにするアプリ/Webを再指定します。
ターゲットを強調表示
現在指定しているアプリ/Webがどれかを確認します。
2秒程度、赤枠で対象が協調表示されます。
以下の例は、リソースに電卓アプリを指定した場合の表示です。
参考スクリーンショットを表示
アクティビティに表示されているキャプチャーを拡大表示します。
キャプチャーをダブルクリックしても同じですね。
参考スクリーンショットを削除
アクティビティに表示されているキャプチャーを削除します。
削除後は、以下のようになります。
ウィンドウアタッチモード
アプリ/Webでは、メッセージボックスやポップアップ、フォームなどが表示されるケースなんて、よくありますよね。
ここでは、これらを総称して子ウィンドウと呼んでおきます。
[ウィンドウアタッチモード]は、リソース内に追加するアクティビティで、子ウィンドウを操作する対象に含むか含まないかを指定します。
ボタンクリックでメッセージボックスを表示するだけのアプリをサンプルに、[クリック]アクションを追加した場合で説明します。
アプリケーションインスタンス
リソースで指定したアプリ/Webの子ウィンドウを制御の対象に含みます。
このとき[クリック]アクションで、ボタンの指定が出来ます。
単一ウィンドウ
リソースで指定したアプリ/Webのみが、制御の対象となります。
つまり、子ウィンドウにあるボタンが、[クリック]アクションなどで指定できなくなります。
ウィンドウサイズの変更
自動化処理実行時に、ウィンドウサイズを変更したい場合に指定します。
リストには、以下3つのメニューがあります。
- なし
- 最大化
- 設計時のサイズに戻す
なし
ウィンドウのサイズを変更しません。
自動化処理前に、アプリ/Webが最小化の状態だった場合は、最小化する前の状態に戻します。
最大化
ウィンドウサイズを最大化します。
設計時のサイズに戻す
ウィンドウの位置とサイズを、リソースの追加をした時と同じ位置、同じサイズに変更します。
オープン動作
自動化処理実行時に、既にアプリ/Webが表示されている場合の動作を指定します。
リストには、以下4つのメニューがあります。
- 空白(指定なし)
- Never
- IfNotOpen
- Always
リソースがアプリケーションの場合、空白以外だと正常に起動/終了できないものがあります。(ver2021.4.4時点)
空白(指定なし)
[IfNotOpen]と同じ動作です。
既にアプリ/Webが起動している場合は、その画面を操作します。
アプリ/Webが起動していない場合は、自動処理実行時にアプリ/Webを起動してから開始します。
Never
自動化処理実行時にアプリ/Webを起動しません。
その為、実行前に予めリソースのアプリ/Webを起動しておく必要があります。
IfNotOpen
既にアプリ/Webが起動している場合は、その画面を操作します。
アプリ/Webが起動していない場合は、自動処理実行時にアプリ/Webを起動してから開始します。
Always
既にアプリ/Webが起動していても、もうひとつアプリ/Webを起動してから開始します。
ただし、二重起動が許可されていないアプリケーションの場合、既に起動しているとエラーになります。
クローズ動作
自動化処理終了後に、アプリ/Webを閉じるかどうかを指定します。
リストには、以下4つのメニューがあります。
- 空白(指定なし)
- Never
- IfOpenedAppBrowser
- Always
空白(指定なし)
[IfOpenedAppBrowser]と同じ動作です。
自動化処理で起動した画面であれば、終了時にアプリ/Webを閉じます。
既に開いていたアプリ/Webの場合は、それを操作したとしても閉じません。
Never
自動化処理終了時にアプリ/Webを閉じません。
IfOpenedAppBrowser
自動化処理で起動した画面であれば、終了時にアプリ/Webを閉じます。
既に開いていたアプリ/Webの場合は、それを操作したとしても閉じません。
Always
自動化処理で操作したアプリ/Webを、終了時に閉じます。
既に開いてあったアプリ/Webであっても、それを処理で操作したのであれば閉じられます。
入力モード
アプリ/Webへの操作(テキスト入力やクリックなど)する際に、どの制御を利用するか指定します。
制御には、以下の3つがあります。
- ハードウェアイベント
- シミュレート
- ウィンドウメッセージ
ハードウェアイベント
どのアプリ/Webにも対応できる、最も汎用的な制御です。
実際に人が操作するクリックや入力操作が自動化されるようなものなので、対象のアプリ/Webが、アクティブ(画面の前面)である必要があります。
処理速度は、3つの中で一番遅いです。
シミュレート
Webの操作、Javaアプリの操作に強い制御です。
最も処理が高速で、画面がアクティブでなくとも動作します。
ただし、互換性が最も低く、ショートカットキーによる操作が出来ません。
ウィンドウメッセージ
アプリケーションの操作に強い制御です。
[ハードウェアイベント]とは違い、アプリがアクティブでなくとも操作できます。
汎用性と処理速度いずれも、[ハードウェアイベント]と[シミュレート]の中間と考えればいいでしょうね。
3つの制御の比較
3つの制御を比較すると、以下のようになります。

シークレット/プライベートウィンドウ
Webブラウザー用のプロパティです。
チェックON(True)にすると、Webブラウザーをシークレットモードで開きます。
なお、シークレットモードで自動化処理実行できるようにするためには、拡張機能の設定を変更する必要があります。
シークレットモード拡張機能を有効化
各ブラウザーの設定方法は以下のとおりです。
Chrome
- [メニュー]-[その他のツール]-[拡張機能]を開く
- [UiPath Web Automation]の[詳細]をクリック
- [シークレットモードでの実行を許可する]をON
Edge
- [メニュー]-[拡張機能]を開く
- [UiPath Web Automation]の[詳細]をクリック
- [InPrivateで許可する]をチェックON
FireFox
- [メニュー]-[設定]を開く
- [拡張機能とテーマ]をクリック
- [UiPath Web Automation]の[メニュー]-[管理]を開く
- [プライベートウィンドウでの実行]の[オン]を選択
InternetExplorer
- 設定は不要
[ユーザーデータフォルダーパス]と[モード]
Webブラウザー(IEを除く)用のプロパティです。
Webブラウザーの情報は、ユーザーデータフォルダー内に保存されます。
情報とは、例えばお気に入りバー設定や拡張機能、キャッシュや閲覧履歴など、とにかくあらゆる情報や設定などですね。
例えば、StudioXで実行する時と、通常使っているブラウザーの設定やキャッシュを別にしたいことがあります。
そのような場合に、ユーザーデータフォルダーを指定するといいでしょう。
[ユーザーデータフォルダーモード]には、以下3つのメニューがあります。
- 空白(設定なし)
- Automatic
- DefaultFolder
- CustomFolder
空白(設定なし)
[DefaultFolder]と同じ動作です。
Automatic
自動化処理の実行には、通常の実行と、PiPを使った実行の、2種類があります。
通常の[実行]では、Webブラウザーが既定で設定しているユーザーデータフォルダーを参照して実行します。
つまり、手でWebブラウザーを開いたときと同じ環境を利用します。
[PiPで実行]の場合、[ユーザーデータフォルダーパス]に指定したフォルダーへ情報が格納されます。
パスが空白の場合は、以下のフォルダーを設定します。
"%LocalAppData%¥UiPath¥PIP Browser Profiles¥[ブラウザー名]"
DefaultFolder
[実行]と[PiPで実行]のいずれでも、Webブラウザーが既定で設定しているユーザーデータフォルダーを参照します。
CustomFolder
[実行]と[PiPで実行]のいずれでも、[ユーザーデータフォルダーパス]に指定したフォルダーへ情報が格納されます。
パスが空白の場合は、以下のフォルダーを指定します。
"%LocalAppData%¥UiPath¥PIP Browser Profiles¥[ブラウザー名]"
ユーザーデータフォルダーモードの注意点
[ユーザーデータフォルダーモード]を設定すると、指定したフォルダーに情報を保存するための各種ファイルが生成されます。
ただ、Webブラウザーが初期状態と同じになる、ということはつまり、拡張機能もインストールされていない状態なんです。
そのため、一度、自動化処理を実行して、わざとエラーで停止させる必要があります。
エラーで停止したら、表示されているブラウザーに対して、拡張機能をインストールするようにしてください。
最初の作業
- 指定のURLが開いた状態の場合は閉じておく
- [エラー発生時に実行を継続]がFalseか未選択であることを確認
- [実行]をクリック
- タイムアウトを待つか、[停止]をクリック
- 開いた状態のブラウザーで、拡張機能をインストール
[入力要素]と[出力要素]
[出力要素]で、リソースに名前を付けて保存します。
そして、別のリソースで[入力要素]に名前を入力することで、同じアプリ/Webを制御できるようになります。
サンプルの例で示した方が分かりやすいでしょう。
1つ目のリソース(A)で、[出力要素]に名前を指定します。
そして次のリソース(B)で、[入力要素]に名前を入力すると、Aと同じアプリ/Webを制御できるようになります。
サンプルのようにリソース同士が隣接することは少ないですが、リソースとリソースの間に別の処理を組む必要がある場合などに使えますね。
エラー発生時に実行を継続
チェックON(True)にすると、リソース内に追加したアクティビティが失敗しても、処理を継続します。
例えば、[クリック]アクションがあるとしましょう。
もし、クリックすべきボタンが表示されていないと、アクションは失敗して停止しますよね。
この時、チェックON(True)にしておくと、タイムアウトの時間が経過した後、スキップして次の処理へ進みます。
タイムアウト
リソース内に追加したアクティビティが、タイムアウトになるまでの時間(秒)を指定します。
未指定の場合は、30秒となります。
アプリ/Webによっては、次に処理するボタンが表示されるまでに30秒以上時間がかかる、そんな場合に設定するといいでしょう。
リソースではなく、アクション単位でもタイムアウト時間を設定できます。
まとめ
リソースのプロパティは、豊富な項目が用意されています。(おそらく一番多いのでは?)
リソースをカスタムすることで、動作が安定したりスピードUPしたりとメリットがあるので、いろいろ設定を覚えておくといいでしょうね。
まとめます。
まとめ
- Excelなど、Office系の操作が可能。
- [入力モード]は、使い分ける方がベター。
- [ユーザーフォルダーモード]をTrueにすることで、設定の棲み分けができる。
この記事で、何か1つでも新しい発見が得られたのなら、僕もうれしいです。