Control

制御系のアクションの仕様について記述しています。

If

概要

指定された条件により処理を分岐します。条件が真の場合、ブロック内に定義された処理を実行します。

パラメーター

名前

概要

condition

文字列

条件(変数利用可能)

${total > 90}

使用例

# 変数に保存
+store_value_1:
action>: StoreValue
key: total
value: 100
# 真のとき
+if_1:
if>: '${total > 90}'
_do:
# テキストを作成
+text_1:
action>: Text
text: '合格'

ForEach

概要

リストの各要素に対して一度ずつ処理を実行します。

パラメーター

名前

概要

iterable

配列

対象のリスト

["apple","orange","banana"]

element

文字列

要素を格納する変数名

fruit

使用例

# 各要素について繰り返す
+for_each_1:
for_each>:
fruit: ["apple","orange","banana"]
_do:
# テキストを作成
+text_1:
action>: Text
text: ${fruit}

Loop

概要

指定した回数だけ処理を繰り返します。

パラメーター

名前

概要

times

数値

繰り返す回数

5

使用例

# 繰り返し
+loop_1:
loop>: 5
_do:
# テキストを作成
+text_1:
action>: Text
text: Hello

BreakIf

概要

Loop / ForEachブロックの中に配置します。 指定された条件が真の場合、繰り返し(Loop / ForEach)ブロックを抜けてブロック外の次のタスクに移動します。 繰り返しが入れ子になっている場合、一番内側の繰り返しブロックから抜けます。

パラメーター

名前

概要

condition

文字列

条件(変数利用可能)

${total > 90}

使用例

# 繰り返し
+loop_1:
loop>: 5
_do:
# 繰り返しを終了する
+break_if_1:
break_if>: ${i === 3}
# テキストを作成
+text_1:
action>: Text
text: '${i}回目'

Try

概要

ブロック内のエラーを捕捉します。Tryブロック内でエラーを捕捉した場合、Tryブロックを抜けてブロック外の次のタスクに移動します。エラーオブジェクトは、errorObjectNameパラメーターで設定した変数に格納されます。Tryブロック内でエラーが捕捉されたかどうかは、IfタスクでerrorObjectNameに値が入っているかどうかをチェックすることにより確認できます。エラーオブジェクトを使って、エラーの種類によって異なるエラーハンドリングを実装することができます。実際の使い方については、使用例をご覧ください。エラーが捕捉されない場合は、ブロックのおわりまでいきます。

パラメーター

名前

概要

errorObjectName

文字列

エラーオブジェクトを格納する変数名

error

エラーオブジェクトの中身

{
"message": "Error: something went wrong.", // エラーメッセージ
"task_name": "+try_1+sub_try+click_point_1", // エラーが発生したタスクの名前
"attempt_id": "2611", // エラーが発生した試行のID
"session_time": "2020-08-24T22:16:45+09:00" // エラーが発生したセッションの開始時刻
}

使用例

# TRY
+try_1:
try>: error
_do:
# ブラウザを開く
+open_browser_1:
action>: OpenBrowser
url: 'https://tutorial.co.jp/'
headless: true
# XY座標でクリック
+click_point_1:
action>: ClickPoint
browser: +open_browser_1
x: 100
y: 100
selector: 'body > div.wrapper > section.module.divider-bottom.pt-5 > div > div.row.pt-5 > div > not > found'
confirm: false
# 真のとき
+if_1:
if>: ${error}
_do:
# 真のとき
+if_2:
if>: ${error.message.includes('Anchor point not found')}
_do:
# テキストを作成
+text_1:
action>: Text
text: 'Handle this error as you like!'

KillAttempt

概要

KillAttemptは、実行中のセッションを異常終了させます。実行されるとエラーステータスで完了となります。想定通り終了した場合もエラーステータスとなるので注意してください。

終了メッセージをつけることができるので、デバッグや条件により終了させたいときに使います。

パラメーター

*は、必須パラメーター

名前

概要

message

文字列

終了時に残すメッセージ

終了しました

アウトプット

無し

使用例

+kill_attempt_1:
action>: KillAttempt
message: 'この条件では、ワークフローが完了しないので終了させます。'

AddToQueue

概要

AddToQueueは、指定したワークフローをセッションキューに追加します。 paramsパラメーターを使えば、ワークフローにデータを渡すことも可能です。

パラメーター

*は、必須パラメーター

名前

概要

workflow_id*

数値

セッションキューに追加するワークフローのID

1234

params

オブジェクト

ワークフローに渡すデータ

{"url":"https://www.roboticcrowd.com/"}

アウトプット

タイプ

概要

Text

文字列

セッションキューのステータス

"running"

使用例

+add_to_queue_1:
action>: AddToQueue
workflow_id: 1234
params:
url: 'https://www.roboticcrowd.com/'