仮想マシンでのプロセス実行時にブラウザ操作がエラーになる

こんにちは。いつも勉強させて頂いております。

表題のとおり、Orchestratorから仮想マシンに対してジョブを開始した際に、
「あらかじめRDPセッションを作成済みでない状態で開始した場合のみ」
ブラウザを開いたところで次のセレクターを参照するアクティビティでプロセスがエラー終了します。

エラー時処理の一環として例外発生時のWindows画面スクリーンショットを取得しており、
そちらを確認したところ、添付のような状態になっておりました。
(添付画像は現物ではなく自分のPCで取得した、こうなるよ、という例です)

事前に仮想マシンにRDP接続を行い、リモート上部の×でセッションを維持したままRDP切断した後にジョブ開始した場合にはこのエラーは発生しないため、
おそらくこのWindowsスタートメニューが邪魔をして裏にあるブラウザの要素にアクセスできていないのかなと思うのですが、
エラー回避のためだけにリモートセッションを維持し続けるのもなんだかうまくないと考えており、
この事象の解決策を探しています。

仮想マシンにアクセスする際の解像度の指定で事象が解消するかも?という情報は得たのですが、
具体的にどういう解像度を指定してやればいいのか見当がつかず、皆様の知恵をお借りしたいと考えております。

よろしくお願いいたします。

こんにちは

セレクターの情報がうまく表示されていませんが、ブラウザ操作ならSimulate Click/Typeなどを
使えば基本的にはバックグラウンドでも動作させることができ、メニューに隠されていても
動作させることはできると思いますが、このあたりはいかがでしょうか?
(フォアグラウンド動作が必要なアクティビティを使っていますでしょうか?)

当該プロセスではフォアグラウンド動作必須なアクティビティは組み込んでいない・・はずですね。
文字入力、クリックについては全てSimulateに設定しております。
ブラウザを開いた直後に、狙ったサイトが表示されたことの確認のためにElementExistsを使用していますが、
これもブラウザが最前面に表示されていなくても動作する・・という認識です。
(エラーメッセージとしては「タイムアウトになりました」が出力されるのですが、ひょっとしてこのアクティビティで出力されていますかね・・?)

1 Like

こんにちは

ElementExistsでタイムアウト例外でていますか?
FindElementは当該要素が無い場合はタイムアウト例外になりますが、ElementExistsはTrue/False返すだけかと思いますが....こちらで出ているようでしたら何か要因があるかもしれません。

FindElementは当該要素が無い場合はタイムアウト例外になりますが、ElementExistsはTrue/False返すだけかと思いますが....

ですよね・・
ということで遅まきながら各所にロジック通過確認のログメッセージを出力して
どこのアクティビティで止まっているのか確認してみましたところ、
大変申し訳ありません。エラーとセレクターは(恐らく)関係ないことが判明いたしました。

OpenBrowserでWEBサイトを開いた直後に、その中でActivate→Maximizeを行っているのですが、
ここのActivateアクティビティでタイムアウトとなっておりました。

事象としてはやはりスタートメニューが邪魔をしてブラウザをアクティブにできないことに起因しているのではないかなと思っております。

1 Like

こんにちは

アクティベートアクティビティはバックグラウンドでは動作しないアクティビティですね。
すべてバックグラウンド動作するアクティビティで構成されているなら、アクティベートをする意味自体がないような気もしますが...

ありがとうございます。仰る通りですね。
Activateを削除したところ、ワークフローが最後まで動作するようになりました・・!

1 Like

This topic was automatically closed 3 days after the last reply. New replies are no longer allowed.