仮想サーバ上にRobotをインストールしており、個人のPC端末から、その仮想サーバへリモートデスクトップ接続をし、シナリオを実行しています。
その際、UI操作が必要なアクティビティ(入力をシミュレートやウィンドウメッセージを送信にチェックをしていない)を含むシナリオ実行中に、下記2パターンのことをするとシナリオが停止してしまいます。
1.リモートデスクトップを×を押して消す
2.リモートデスクトップを最小化する
Robot をインストールしているのがPC端末上であれば、サーバーの画面が表示されないとUI操作ができないのは納得なんですが、シナリオを実行しているのは仮想サーバ上であるので、PC端末からそれを表示してるかしてないかでシナリオが止まるとうのが納得できてないのですが、何故なのでしょうか。
また、今後Orchestratorからトリガーを使ってスケジュールでこれらのシナリオを自動実行したいのですが、その場合当然画面は描画されないわけで、その場合もUI操作が含まれるシナリオは途中で停止してしまいますでしょうか。
Yoichi
(Yoichi)
2
こんにちは
前者は、簡単に言うと画面がないから、
後者は以下によって対応できる場合があります
今後Orchestratorからトリガーを使ってスケジュールでこれらのシナリオを自動実行したいのですが、その場合当然画面は描画されないわけで
OCからのトリガーでのUR実行は、バックグラウンドプロセスの実行といった特別なケースを除けば、コンソールまたは自身へのRDP接続にによってInteractiveなセッションが存在しますので、UI操作についても問題なく動作します。
ご回答ありがとうございます!
これは、RobotがPC端末上にインストールされてる状態でリモートデスクトップで作業をする時のことなのかと思っていたのですが、仮想サーバ上にRobotがインストール場合でもそうなのでしょうか。前者は「画面がないと動かない」で分かるんですが、後者でもそうな理由が知りたいです…
このご回答から察するに、仮想環境ログインからの手動実行とOCからのUR実行とではセッションの張り方が違うということなんですよね。
Yoichi
(Yoichi)
4
こんにちは
上記ドキュメントにあるレジストリのキー RemoteDesktop_SuppressWhenMinimized にて
最小化時の動作が制御でき、2を設定すると最小化時でも画面描画がされる状態になります。
(通常RDPのウインドウが最小化されているときは、描画する必要が無いケースが多いかと
思いますので、デフォルトはそのようになっているのかと思います)
セッションの張り方が違うということなんですよね。
確認したい事項がわかりにくにので、どのように「違う」と理解されているかを
記載いただけますでしょうか?
初心者ゆえ何もわかっておらず、解りづらい質問をしてしまい、申し訳ございません。
- PC端末ローカルでURを手動実行してリモートデスクトップ画面を操作してる最中にリモートデスクトップ画面を最小化した時
- リモートデスクトップで接続した仮想サーバ上でURを手動実行したあとにリモートデスクトップを最小化した時
- OCを用いてUR実行する時
1の場合は、画面描画がないとUI操作ができないので、最小化すると止まってしまうのは分かるのですが、2の場合は仮想サーバ上で実行されていることであり、PC端末が仮想サーバの画面を描画をしようがしまいがUI操作に影響がなさそうなのに、画面を最小化すると止まってしまうのは何故なのか、という質問でした。
同じく仮想サーバ上で完結するけど画面描画のない3はUI操作も出来るとのご回答だったので、2が止まるのは2の実行方法ではインタラクティブのセッションを張れないからなのかなと思った次第です。
ものすごく見当違いなことを言っていたら本当に申し訳ないです…。
Yoichi
(Yoichi)
6
こんにちは
これは誤認かと思います。
コンソールまたは自身へのRDP接続にによってInteractiveなセッションが存在しますので
なので、画面は存在します。
RDP切断時は、サーバー側で画面描画が行われません。
画面は存在するんですね。誤解しておりました。
いただいたURLに書いてある「仮想環境上での自動化は、UI オブジェクトとの直接対話ではなく、要素の視覚的な認識によって実行されます。」は、ロボットがPC端末ローカルにインストールされてようと仮想サーバにインストールされてようと、リモートデスクトップでロボットを操作するものであれば共通していることなのですね。
もっと勉強します。何度もご返信くださり、本当にありがとうございました。