条件とエラー処理
ロボットは、さまざまなケースでさまざまなアプローチを使用できます。ケースは明示テストに基づき、条件の評価と、処理を必要とするエラーの発生のいずれかに区別されます。
条件によって、入力ロボット状態 (HTML ページに特定のタグがあるなど) のコンテンツに基づき実行のフローが変更されます。エラー処理とは、特定のエラーの発生時に実行のフローを変えることです。たとえば、存在が想定されるアンカー タグが HTML ページに見つからず、クリックできない場合などです。 多くの場合、状況は次の 2 通りになります:アンカー タグが見つかった場合 (条件) にはクリックする。または、ロボットがアンカー タグのクリックを試行してエラーを処理できる (アンカー タグが見つからなかった場合)。一部のケースでは、一般的に条件と考えられているものは非常に複雑でそれ自体を記述することはできません (たとえば、「この特定のページがエラーなしでロードできる場合」という条件)。そのような場合、ページ読込し、エラーを条件が失敗したことの指標と見なします。
その他のエラーは、ロボットまたはアクセス中の Web サイトに実際に問題があるサインです。たとえば、Web サイトがダウンし、ページ読込 エラーが発生した、または HTML ページの動的なページ レイアウト変更のためにタグ ファインダーで必要なタグを見つけられなかった場合です。特定のエラーは一部の状況では失敗した条件であり、その他の状況では実際のエラーと考えられます。解釈はロボットによって異なります。
このように条件実行とエラー処理間の境界が不明確なため、Design Studio では両方の機能を統一された方法で提供しています。ステップごとに、エラー発生時に何をするかを設定できます。さらに、特定の条件に基づくテスト アクションを含むステップでは、同じアプローチを再利用します。つまり、条件が一致しない場合、(デフォルトの) アクションはエラーが発生した場合のように適用されます。
ロボットのステップごとに、エラーへの必要な対応を設定できます。ここでは、2 つの有用なエラー処理オプションについて説明します。その他のオプションについては、エラーの処理方法を参照してください。最初のオプションは、トライ ステップに密接に関連しています。
トライ ステップでは複数の分岐が出ているため、分岐ポイントに似ています。トライ ステップは分岐ポイントとは異なります。最初の分岐より後の分岐は、先行する分岐のステップで「次の代替手段を試行」オプションに基づいて処理されるエラーが発生した場合にのみ実行されるためです。次のロボットについて、通常ステップでそれぞれ 1 つのロボット状態が出力されるものとします。
![](../../All_Images/5StepAndTryRobot.png)
アイコンは、ステップ B が「次の代替手段を試行」によってエラーを処理するように設定されていることを示します。
ステップ B が正常に実行されると、ステップ実行は次のようになります:「A、T、B、C」。T から出ている最初の分岐がエラーなしで実行されるため、2 番目の分岐はまったく実行されません。
一方で、ステップ B でエラーが発生すると、ステップの実行は次のようになります:「A、T、B、T、D、E」。ステップ B のエラーが処理された後、実行は後続のステップで続行されず、代わりにトライ ステップから出ている次の分岐の開始時に続行されます。
トライ ステップからの各分岐は、その点から続行する可能な 1 つの方法を表します。各分岐の開始に近いステップでは、分岐に沿った実行が実行可能なアプローチであるかどうかが検証されます 。実行可能でない場合は「次の代替手段を試行」が実行されます。分岐が現在のケースに対して適切であると判別された場合、後のステップが実際の作業を行います。分岐の開始の近くの判定ステップは、テスト ステップか、またはエラーが発生した場合にこの分岐は続行経路ではないことを示すステップにすることができます。トライ ステップから出ている分岐は多数にすることもできます。
Java、JavaScript、C# などの通常のプログラミング言語と同様に、先行するロボットは "if-then-else" 構成に似ています。トライ ステップの後の最初の分岐には条件 ( "if" の部分) と "then" の部分が含まれ、最後の分岐には "else" の部分が含まれています。2 つ以上の分岐がある場合、最初と最後の間の分岐は "else-if" の部分と同様です。
最初の分岐がエラーを発生させる可能性がある何らかのアクションを実行しようとする場合、例は "try-catch" 構成ともいえます。最初の分岐が "try" の部分で、2 番目の分岐が "catch" の部分と同様です。
もう 1 つのエラー処理オプション、「後続のステップ全てをスキップ」では、共通した特殊ケースを表すさらにコンパクトな方法を提供しています。これについて次のロボットで例示します。エラーが発生する可能性があるステップは最初の分岐の最初のステップで、2 番目の分岐は何も発生しません。
![](../../All_Images/TryWithEmpty2ndBranchRobot.png)
結果として、エラーが発生した場合にはステップ B より後のステップの実行がスキップされます。トライ ステップなしで、エラー処理オプション「後続のステップ全てをスキップ」(デフォルト) を以下の方法で使用しても同様の結果になります。
![](../../All_Images/SkipFollowingStepsRobot.png)