y.c
(BYC)
July 20, 2023, 3:29am
1
いつもお世話になっております。
ChromeにてWEBページの画面をPDF保存するようにしたいと思っています。当初[キーボード ショートカットキー]で印刷画面を立ち上げて実行を想定していたのですが、ロボットをバッググラウンドで動かす為、該当アクティビティが使えないと判明しました。
その為、クリックでChromeの①「…(設定)」→②「印刷…」を選択するように変更したのですが、①は上手くいっているのですが、②の段階で設定の画面がすぐに消えてしまっていて要素が抽出できない状態です。
画像での抽出や①の実行後の待機時間を変えたのですが、いずれも結果は同じでした。
アクティビティに特にこだわりはないのですが、どうにかしてバッググラウンドで印刷画面にたどり着く方法はないでしょうか?よろしくお願いいたします。
rlgandu
(Rajyalakshmi Gandu)
July 20, 2023, 3:43am
2
y.c:
I would like to save the screen of the web page as a PDF in Chrome. Initially, I was supposed to launch the print screen with [keyboard shortcut key] and execute it, but it turned out that the activity could not be used because the robot was running in the background.
Therefore, I changed it to select Chrome’s ① “… (Settings)” → ② “Print…” by clicking.
I changed the image extraction and the waiting time after executing ①, but the results were the same.
I’m not particular about the activity, but is there a way to somehow get to the print screen in the background? Thank you.
@y.c
Instead of trying to click through the settings to access the Print dialog, you can use the “Send Hotkey” activity to send the keyboard shortcut for printing in Chrome (e.g., Ctrl+P
for Windows or Cmd+P
for Mac). This will open the Print dialog.
Yoichi
(Yoichi)
July 20, 2023, 3:43am
3
こんにちは
手元の環境では問題なく指定できますが、ChromeのバージョンとUiAutomationバージョン共有可能でしょうか?
どうにかしてバッググラウンドで
これどのような意味でしょうか?
UiPathのプロセスをバックグラウンドプロセスにしているということでしょうか?
あるいはChromeの画面がフォアグラウンドにないという意味でしょうか?
minami
July 20, 2023, 3:48am
5
y.c
(BYC)
July 20, 2023, 4:31am
6
rlgandu:
Instead of trying to click through the settings to access the Print dialog, you can use the “Send Hotkey” activity to send the keyboard shortcut for printing in Chrome (e.g., Ctrl+P
for Windows or Cmd+P
for Mac). This will open the Print dialog.
Thanks for your cooperation. Hotkeys are not available in the background, so I’m looking for other ways.
y.c
(BYC)
July 20, 2023, 4:32am
7
Thanks for your cooperation. Hotkeys are not available in the background, so I’m looking for other ways.
y.c
(BYC)
July 20, 2023, 4:49am
8
Yoichiさん、いつもお世話になっております。ご回答ありがとうございます。
ロボットの実行ですが、タスクスケジューラでbat起動しています。本来 推奨されていないのは存じていますが、Orchestratorが導入してもらえず。。。また、環境としては、専用PCにリモートで入って開発→タスクスケジューラで自動実行しているので、実際の運用時はバッググラウンドでの実行が前提となってしまいます。
ご指摘の通り、要素自体は取得できているっぽいのですが、デバックで動かすと、①まではいくのですが、②の段階の前に設定画面が消えてしまい、要素が見つかりませんでした、というエラーで処理が終了してしまいます。
Chromeは114.0.5735.201(Official Build) (64 ビット)、UiAutomation.Activitiesは23.4.7です。
minami
July 20, 2023, 4:53am
9
もしかしたらHDMIのダミープラグを指すとか、モニタをつなげるとか、ノートPCであれば画面を閉じずに開いたままにしておくとかが解決策になるのではないかと思われます。
PC上で画面がないと認識されているとこのような振る舞いになることがあります。
y.c
(BYC)
July 20, 2023, 4:53am
10
minamiさん、ありがとうございます。
バッググラウンドプロセスというのがあるのですね、お恥ずかしながら初めて知りました。
1つ前の投稿の通り、現在タスクスケジューラでバッチを自動実行させているため、バッググラウンドでの操作になっています。PCは開発等で使用していない時はロック状態になっています。
y.c
(BYC)
July 20, 2023, 4:54am
11
PCは確かディスプレイはなかったです。手元になくオフィスに置いてあるので、リモートで入って操作しています。
y.c
(BYC)
July 20, 2023, 4:56am
12
参考になるか分からないのですが、デバックでエラー終了した際の画面とエラー内容を転記しました。何故かエラーで終了すると謎のワークフローが出現して、毎回Studioを立ち上げ直し→プロジェクトを開き直してます。そういう仕様なのでしょうか??
エラー内容.txt (4.6 KB)
minami
July 20, 2023, 4:57am
13
ではそれが原因の可能性があります
可能であればモニタをつないで試してみてください。
リモートでつないだまま、最小化せずに動かしてみるでもよいとは思いますが・・
Yoichi
(Yoichi)
July 20, 2023, 5:35am
14
また、環境としては、専用PCにリモートで入って開発→タスクスケジューラで自動実行しているので、実際の運用時はバッググラウンドでの実行が前提となってしまいます。
ユーザーがログインしていない状態で、タスクスケジューラーで起動しているということでしょうか?
そうであれば、有効なインタラクティブセッションが存在しないので、SimulateやChromeAPI以外の入力操作や、HardwareEventレベルのUI操作はできないのではないかと思います。
ご指摘の通り、要素自体は取得できているっぽいのですが、デバックで動かすと、①まではいくのですが、②の段階の前に設定画面が消えてしまい、要素が見つかりませんでした、というエラーで処理が終了してしまいます。
これはリモートデスクトップで画面が描画されている状態での現象でしょうか?
クリックの入力モードは何になっていますでしょうか?
もしHardwareEventになっているようでしたらSimulateを試してみてもらえますでしょうか?
y.c
(BYC)
July 20, 2023, 5:43am
15
ありがとうございます。
共有端末なので、その辺りの運用を許容していいただけるか社内で相談してみます。
y.c
(BYC)
July 20, 2023, 6:50am
16
専用アカウントでログインした状態ですが、人が操作していない間はロック状態になっています。
先ほど、全て「シミュレート」にしたところ、デバックでは動くようになりました!リモートデスクトップで画面が描画されている状態です。
ただ、タスクスケジューラで自動実行すると、今度は印刷画面で【保存】ボタンの「要素が見つからない」で止まってしまいます。ただ、止まった画面を見る限り、印刷画面まではきていて、「保存」ボタンも明らかに表示されているのですが・・・。
Yoichi
(Yoichi)
July 20, 2023, 6:57am
17
こちらは、画面が操作可能状態でしょうか?あるいはロック状態でしょうか?後者の場合はいろいろ制約が出てくると思いますが....
y.c
(BYC)
July 20, 2023, 8:20am
18
ロック状態です。。。
基本、本番運用時はタスクスケジューラで自動実行を前提としているので、このロック状態で動いてくれるように作れれば…と思ってます。すでに作ってある部分は「シミュレート」で動いているので、なぜここだけ動かないのか分からないのですが。
Yoichi
(Yoichi)
July 20, 2023, 8:48am
19
上述しましたが、ロック状態では有効なインタラクティブセッションが存在しませんので、基本的にUI操作は避けた方が良いですし、動作も保証されないと思います。
ワークアラウンドとしては例えばコマンドで
chrome.exe --headless --print-to-pdf=保存ファイル名 対象URL
とすれば、PDF出力できる場合もあります。(途中認証が入ると難しいかもしれません)
タスクスケジューラで自動実行を前提
こちら使用許諾の面で大丈夫でしょうか....
y.c
(BYC)
July 20, 2023, 9:19am
20
ありがとうございます。
やはり上記状態では難しそうですね、実行方法含めて改めて検討してみます。
コマンドも試してみます、大変助かりました。