Question
Edge を複数ウィンドウで起動している状態で、『プロセスを強制終了』アクティビティにより Edge を終了後、『プロセスを開始』アクティビティで再度 Edge を起動すると、強制終了前に開いていた Edge ウィンドウが復元され、複数の Edge ウィンドウが起動します。
原因と回避策を教えてください。
環境:
- Studio v2024.10
- Microsoft Edge
Answer
原因:
『プロセスを強制終了』アクティビティにより Edge を終了した場合、Edge 側で通常終了ではなく、クラッシュに近い状態として扱われる可能性があります。
その状態で Edge を再起動すると、Edge 側のクラッシュ復元関連の挙動により、強制終了前に開いていたウィンドウやタブが復元される場合があります
対応策:
次のいずれかの回避策をお試しください。
回避策 1:
Edge の終了方法を見直します。
起動中の msedge.exe を『プロセスを強制終了』アクティビティで一括終了する構成は、通常のブラウザー終了方法としては推奨されません。
ブラウザーを通常利用の範囲で閉じる用途では、『プロセスを強制終了』アクティビティよりも、次のような通常の終了処理に近い構成を検討してください。
- 『アプリケーション/ブラウザーを使用』アクティビティの「クローズ動作」を使用する
- 『アプリケーションを閉じる』アクティビティを使用する
- 対象タブのみを閉じる処理に変更する
設計変更が必要になる可能性がありますが、Edge のクラッシュ復元挙動の影響を避けるため、通常終了に近い方法で閉じる構成を検討してください。
参考:
「アクティビティ - アプリケーション/ブラウザーを使用」
「アクティビティ - アプリケーションを閉じる」
回避策 2:
Edge をゲスト モードで起動します。
検証環境では、Edge 起動時の引数に --guest を付与した場合、事象が回避されることを確認しています。
現在の Edge 起動処理で設定している引数の末尾に、半角スペースを入れて --guest を追加します。
例:
<対象URL> & " --new-window --force-renderer-accessibility --silent-debugger-extension-api --guest"
ゲスト モードでは通常のプロファイルとは異なる動作となるため、次の情報や機能を利用する処理では、業務要件に適合するか確認してください。
- 保存済みのログイン状態
- 通常プロファイルに紐づく拡張機能
- 通常プロファイルに保存された Cookie やキャッシュ
回避策 3:
Microsoft Edge のポリシーで復元ダイアログを抑止します。
マイクロソフト社の公開情報では、HideRestoreDialogEnabled ポリシーを有効にした場合、Edge がクラッシュした後の「ページの復元」ダイアログは表示されず、以前のタブも復元せずに新しいタブページでセッションを開始すると案内されています。
検証環境では、このポリシーを設定した場合、ゲスト モードを利用しない場合でも事象が回避されることを確認しています。
設定は、組織の端末管理方針に沿って管理者が実施してください。レジストリを直接編集する場合は、事前にバックアップを取得し、組織の運用ルールに従ってください。
設定例:
- レジストリ エディターを開きます。
HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Edgeを開きます。Edgeキーが存在しない場合は作成します。HideRestoreDialogEnabledという名前の DWORD「32 ビット」値を作成し、値を 1 に設定します。- Edge を完全に終了し、再起動します。
edge://policyを開き、HideRestoreDialogEnabledが表示されていることを確認します。(※1)- 対象ワークフローを再度実行し、事象が回避されるか確認します。
※1:edge://policy 上では値が true と表示される場合があります。
この設定は Microsoft Edge 側のポリシー設定です。UiPath 製品の設定ではないため、Edge 側ポリシーの詳細な運用判断は、マイクロソフト社の公開情報も確認してください。
参考:
「HideRestoreDialogEnabled - ブラウザーのクラッシュ後にページの復元ダイアログを非表示にする」