UiPath

UiPath+Firefox+foxit readerでPDF印刷を自動化したい

投稿日:

やりたかったことと現状:
・ブラウザはFireFoxで、PDF表示するのにfoxit readerを使っている。
・ブラウザからPDFを別タブで開き、印刷してから、タブを閉じている。
・これまでは、PDFで開くデータが多い場合に、データが読み込み終わる前に印刷処理が始まってしまうことがある(この場合、印刷データがありませんというエラーになって止まる)。十分な待機時間を取ったらうまくいくが、これで安心できるかというと、うーん。
・印刷が完全に終わってからタブを閉じるということも、UiPathでは検知・処理できないので、「処理が終わったらOKボタンをクリックしてね」というダイアログを出して待機するようにしていた。

理想:
・待機時間を固定値でとらないようにしたい。データが少ない場合は少ない待機時間で、多い場合は逆に。
・ダイアログのOKボタンをクリックしないで、最後まで自動化したい。

やったこと:
自分の業務の場合は、楽天RMSの受注管理からの出力で、「全部で〇件」と画面上に表示されているので、この件数分、待機時間をとるようにした。
実際には、基本待機時間を3秒とり(全1件であっても最初のタブを開くのに時間がかかるため)、さらに1件につき1秒追加、というようにした。

ポイント:
ブラウザの要素から取得したテキストを、変数cntに入れる。
ストリング型の変数variable1に、“00:00:” & cnt.ToString をセット。
タイムスパン型のvariable2に、Timespan.Parse(variable1) をセット。

手間取ったこと:
楽天の「全〇件」のテキストを取得するのに、正規表現を使ってやろうとして、試行錯誤した
その後、自分の使いたい画面では数字にクラスが定義されていたので、必要なかった・・・。

〇件=〇秒の待機時間を加算とするために、初めてdatetime型を使った。変換やらを、理解するのに時間がかかった。
以下のリンクを参考にさせていただいた。この情報がなければできなかったので助かった。
UiPathで年月日を加工しよう – RPAひろば

-UiPath

執筆者:

関連記事

UiPathで1分を超える場合の秒の処理

これまで、以下のように、時間を文字列にしたうえで、時間に変換していました。 variable1 = “00:00:” & cnt.ToString variable2 = Timespan.P …

no image

UiPathと画面/データスクレイピング

AmazonPayの管理画面で、メールアドレスをもとに顧客を検索して、その結果をスクレイピング・・・ということをやりたいのだが、四苦八苦して仕組みを作るのに2日ほどかかった。 UiPathには画面スク …

UiPathをFireFoxで使うための設定

ブラウザでFireFoxを使いたいなら、スタート-ツール-拡張機能で、FireFox用の拡張をインストールしておく。 さらに、ブラウザーを開くのプロパティで、FireFoxを指定しておく。 あと、自動 …

UiPathのレコーディングが遅い件が改善

UiPathのブラウザーでのレコーディングが、最近、遅くて仕方がない。 前は、こんなに遅くなかったのに、なんでだろう。 Webページ上のセレクトボックスひとつ選択して、マウスポインタが青い輪郭の半透明 …

在庫らくだのメニュー部分を、UiPathで操作する->うまくいったり、いかなかったり

テスト中は、うまくいったものが、本番では、うまくいかなくなったり(うまくいくことも、たまに)。 UiExplorerでタグを調べたり、クリックを偽装したり、待機時間を入れてみたりと、いろいろ試してみた …