繰り返し(前判定)の条件に達しないのに次へ飛んでしまう

こんばんは。
はじめて投稿します。

Web上のリンクからPDFを開き、前頁スクリーンショットを撮って保存する作業を、
次の3ステップで作成中です。

(1)データスクレイピングでWeb上のリンク先URLをエクセルに保存

(2)繰り返し(各行)でエクセルからURLを取得し、リンク先のWeb上のPDFを開く。

(3)PDFのスクリーンショットを最終ページまで繰り返し(前判定)で撮り、保存する。

今回教えていただきたいのは、
(2)の繰り返し(各行)の中に(3)の繰り返し(前判定)を組み込んだ場合、
(3)の繰り返しが条件(全ページ数)に達するまで繰り返されなかったり、全部すっ飛ばかして、エクセルから次のURLを取得してきて新しいPDFを開いてしまったりします。

ちなみに(3)の繰り返し(前判定)は、それ単体では、ちゃんとスクショを条件(全ページ数)まで撮れるように作成できています。ページ数がちゃんと取得できていないわけではないです。

繰り返しの中に繰り返しを組み込むとうまくいかないとか、あるのでしょうか?
それとも他に何か原因があるのでしょうか?

教えてください。
よろしくお願いします。

1 Like

実際のシナリオをどのように組まれているのかが明確でないのでお答えが難しいですが、(3)のシナリオが正しく進んでいることをLog Messageなどを利用して確認いただくことが解決を導くかもしれません。もしTry-catchなどで囲んでいるようでしたら、一度外した上でテストを繰り返し実施し、例外発生の有無を確認するのもよいかもしれないですね。
あるいは各操作の速度に、自動化されるアプリケーションが追いついていない可能性もあります。上記を確認した上で、遅延をコントロールする値(DelayBeforeやDelayAfter)を調整したり、またはDelayアクティビティを入れるなどしてみるのも、解決のためにご検討いただくと良いかと思います。

アドバイスをいただきありがとうございます。
教えていただいたことをひとつずつ試してみたいと思っています。
ただ、初心者なもので、例えば、
Log Message、Try-catchなどの使い方がまだよくわかっていないため、
少し時間がかかりそうです。

各操作の速度に、自動化されるアプリケーションが追い付いていない可能性についても
Delay BeforeやDelay After、Delayアクテビティなどを利用して試してみます。

それでしたら、まずはLog Messageを、ポイントとなる作業の前後に入れてみるのが良いかもしれません。
(Log Messageは、アクティビティのボックス内に入れたメッセージを、StudioのOutputペインに書き出す機能を持っています。よく開発中に作業の進み具合や変数の中に入る値を確認するのに利用します)

ぜひ色々お試しいただいて、結果がわかりましたらレポートいただけますと幸いです。

的確なアドバイス、本当にありがとうございました。
Log Messageで変数の設定(受け渡し?)がうまくできているかどうかをチェックすることができ、原因がわかりました。
繰り返し(前判定)でPDFをめくるたびにページカウントするように設定していた変数が、繰り返し(前判定)の中だけでなく、外側にまで持ち越されていたことが原因でした。
変数のスコープを繰り返し(前判定)に変えることで、問題は解決しました。
長いこと悩んでいた部分なので、本当にとてもうれしいです。
思い切って質問してよかったです。
ありがとうございました。

2 Likes

解決したようで何よりです!
スコープの問題、意外と見過ごしがちなのでぜひ今後の開発に活かしていただければと思います!

質問が解決しましたら回答を解決策としてマークいただけますと幸いです!

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