Conditions et traitement des erreurs

Un robot peut utiliser différentes approches dans différents cas. Les cas peuvent être distingués soit sur la base de tests explicites, soit par l'évaluation des conditions, soit parce que des erreurs se produisent et doivent être traitées.

Les exemples présentés dans cette rubrique sont basés sur le mode d'exécution de conception Exécution minimale (directe).

Les conditions modifient le flux d'exécution en fonction du contenu de l'état du robot d'entrée (comme la présence d'une balise particulière dans une page HTML). Le traitement des erreurs consiste à modifier le flux d'exécution lorsque des erreurs particulières se produisent (par exemple, certaines balises d'ancrage ne se trouvent pas sur la page HTML comme prévu et ne peuvent être cliquées). Souvent, une situation peut être vue de deux manières : Une balise d'ancrage doit être cliquée si elle est trouvée (c'est une condition), ou le robot peut essayer de cliquer dessus pour traiter l'erreur (si elle n'est pas trouvée). Dans certains cas, ce qui est généralement considéré comme une condition est trop complexe pour être rédigé comme tel (par exemple, une condition disant « si cette page particulière peut être chargée sans erreur »). Dans ce cas, essayez de charger la page et traitez toute erreur comme une indication que la condition a échoué.

D'autres erreurs sont le signe de véritables problèmes liés au robot ou au site web consulté. Par exemple, le site web peut être en panne et provoquer une erreur de chargement de page, ou un localisateur de balise peut ne pas trouver une balise nécessaire en raison d'un changement radical de la mise en page d'une page HTML. Une erreur particulière peut être considérée comme un échec dans certains cas, et comme une véritable erreur dans d'autres cas. L'interprétation dépend du robot.

En raison de cette frontière floue entre l'exécution conditionnelle et le traitement des erreurs, Design Studio fournit les deux fonctionnalités de manière unifiée. Pour chaque étape, vous pouvez définir l'activité en cas d'erreur. En outre, les étapes avec une activité de test (basée sur une condition d'un certain type) réutilisent la même approche, ce qui signifie que si la condition n'est pas remplie, l'activité (par défaut) est appliquée comme si une erreur s'était produite.

Pour chaque étape du robot, vous pouvez configurer la réaction souhaitée aux erreurs. Deux options utiles de traitement des erreurs sont décrites ici ; consultez la section Comment traiter les erreurs pour plus d'informations sur les autres options. La première option est étroitement liée à l'étape de test.

L'étape de tentative est similaire à un point de branchement, car il peut en sortir plusieurs branches. Elle diffère d'un point de branche, car les branches au-delà de la première ne sont exécutées que si une étape sur la branche précédente rencontre une erreur qu'elle traite en fonction de l'option « Essayer l'alternative suivante ». Considérons le robot suivant et supposons que chaque étape ordinaire est censée produire exactement un état du robot :



L'icône indique que l'étape B est configurée pour traiter les erreurs par « Essayer l'alternative suivante ».

Si l'étape B est exécutée avec succès, l'exécution des étapes se déroule comme suit : « A, T, B, C. ». Comme la première branche sortant de T s'exécute sans erreur, la deuxième branche n'est pas exécutée du tout.

Si, en revanche, l'étape B rencontre une erreur, l'exécution des étapes se déroule comme suit : « A, T, B, T, D, E. ». Une fois que l'erreur de l'étape B est traitée, l'exécution ne se poursuit pas à l'étape suivante, mais au début de la branche suivante sortant de l'étape « Tentative ».

Chaque branche d'une étape de test représente une façon possible de procéder à partir de ce point. Les étapes proches du début de chaque branche vérifient que l'exécution le long de la branche est une approche viable (et sinon exécutent « Essayer l'alternative suivante »), tandis que les étapes ultérieures font le travail lorsque la branche s'avère être la bonne pour le cas en question. Les étapes de sondage près du début d'une branche peuvent être soit des étapes de test, soit n'importe quel type d'étapes qui, si les étapes rencontrent une erreur, indiquent que cette branche n'est pas la voie à suivre. Il peut exister un nombre quelconque de ces branches qui sortent d'une Étape de tentative.

Comme pour les langages de programmation ordinaires tels que Java, JavaScript, C# ou similaires, le robot précédent est semblable à une construction « if-then-else ». La première branche après l'Étape de tentative contient la condition (la partie « If ») et la partie « then », tandis que la dernière branche contient la partie « else ». S'il existe plus de deux branches, celles qui se trouvent entre la première et la dernière sont similaires à des parties « else-if ».

Si la première branche tente de réaliser une activité qui peut être source d'erreur, l'exemple peut être également assimilé à une construction « tentative-récupération » : La première branche est la partie « tentative », tandis que la seconde est similaire à la partie « récupération ».

Une autre option de traitement des erreurs, « Ignorer les étapes suivantes » offre une manière plus compacte d'exprimer un cas spécial commun, qui est illustré par le robot suivant. L'étape qui peut rencontrer une erreur est la première sur la première branche, et la deuxième branche ne fait rien.



L'effet est d'ignorer l'exécution des étapes après l'étape B si elle rencontre une erreur. Le même effet peut être obtenu sans l'étape « Tentative » en utilisant l'option de traitement des erreurs « Ignorer les étapes suivantes » (qui est la valeur par défaut), de la manière suivante.