こんにちは。いつも勉強させて頂いております。
過去にこんなトピックを立てさせて頂きまして、その際はワークフローの全動作を
バックグラウンドで行えるもので構成することでエラーを回避することができました。
(その節はありがとうございました)
ただ、今回いよいよフォアグラウンド動作を回避できないワークフローを作成することになりまして、
あらためて知恵をお借りしたく思っております。
状況を細かく書いていたらえらく長くなってしまいましたが、余裕がありましたらお付き合い頂ければと。
■やろうとしている動作
ある内製アプリケーションを開き、その中で
1.TypeInto(シミュレート)でセレクターを指定してログインIDを入力
2.TypeInto(シミュレート)でセレクターを指定してパスワードを入力
3.SendHotKeyで、セレクターにパスワード入力欄を指定してEnterを送信し、ログイン
・・という動作を行おうとしています。
※この中で3.がバックグラウンドでは動作しないアクティビティだという認識です
■困っている事象
このワークフローについて、もちろんStudioから実行した場合は正常動作するのですが、
パブリッシュしてUnAttendedRobot環境(仮想マシン)で実行した場合に、状況によってエラー終了します。
具体的には、
・一度RDP接続でセッションを作成して、それを維持したまま画面上部の×でRDP切断した状態にして、Orchestratorからプロセスを実行
→正常動作する
・セッションが張られていない状態で、Orchestratorからプロセスを実行
→3.の動作で「タイムアウトになりました」例外となる
・・といった感じです。
■少し自力で調べてみた状況
例外発生時のキャッチとして、例外が発生した時のPC全体のスクリーンショットを取得するようにしています。
それを確認したところ、添付のようなイメージでWindowsのスタートメニューがアプリのウィンドウの前面にかかっておりました。
(画像はあくまでイメージのため、IEの上にかかっている形になっていますが、
実際にはアプリの上にかかっている感じになります)
■直接の原因の推測
手動で仮想マシンにRDP接続した際も
・ログインした直後はスタートメニューが表示されている
・セッションを維持したままRDP切断し、再接続した場合にはスタートメニューは表示されない
ということから、おそらくスタートメニューが邪魔をして、裏に回っているアプリを前面に持ってこれず、結果、要素にアクセスできていないのかなと推測しています。
■知りたい情報
最終的にはこの例外を回避する方法が知りたいのですが、そのキーとなりそうな
「仮想マシンで作成したURでプロセスを実行する際に、Windowsスタートメニューを表示させない方法」
または「表示されているWindowsスタートメニューを無視できる手段」
がありましたら、ぜひご教示頂きたいと考えております。
・・長い!
改めて、ひたすら長文で本当に申し訳ありませんが、
仮想マシンでUnAttendedRobotを構築されている方など、知恵をお貸しいただければと思います。
よろしくお願いいたします。