Docly Child

変数を使った計算を行う

343 views

この記事では、変数呼び出しのフォーマットを使って、ワークフロー内で簡単な計算を行う方法についてご紹介します。

 


計算ができる主なアクション

・StoreValue(変数に保存)
・Text(テキストを作成)
・各表計算ツールの書き込み系アクション   など
基本的に、文字列を入力/作成するアクションやパラメータ上であれば計算が可能です。

 計算式の表記方法

計算式に変数を含む表記方法は以下になります。
(変数呼び出しの記法についてはこちら

${parseInt(変数名) 計算式}
  • parseInt(変数名)と表記することで、変数に保存されている数値を整数として認識します
  • ${}で囲む範囲は、計算式の末尾までとなります

 主な使用例

基本的な四則演算、また応用編としてワークフローでの便利な使用例(別記事にジャンプします)をご紹介します。

ここでは、値を18と設定した変数numがあるとします。

◇足し算の例

例えば、numに2を足した値を変数plusNumの値としたいとき、このように計算が可能です。

${parseInt(num) + 2}

ログを確認すると、変数plusNumに20という値が保存されています。

残りの四則演算に関しても同様です。

◇引き算の例
${parseInt(num) - 3}
◇かけ算の例
${parseInt(num) * 5}
◇わり算の例

※数値を切り上げで使う例は、下の応用①のリンクを参照ください

${parseInt(num) / 6}
◇複数の演算子を含む例

式内に複数の演算子を含む計算は、優先順位がある場合、必要に応じてカッコにまとめます。この場合も、式全体が${}で囲まれているようにします。

${(parseInt(num) + 2) * 2}

変数に保存されている数値が小数の場合、以下の記法で認識できます。
parseFloat(変数名)の表記で、変数に保存されている数値を小数として扱えます。

${parseFloat(変数名) 計算式}

例えば、値を2.5に設定した変数numがあるとします。
ここに0.5を足した数値をシートに入力したいときは、以下の計算式をUpdateCellsアクション等の値欄に入力します。

${parseFloat(num) + 0.5}

シートを確認すると、計算後の数値が書き込まれています。

「590件データがあり1ページ辺りは100件しか表示されない」といったサイトを使って繰り返しの操作を行う場合、ページ分の繰り返し回数を計算で算出すると便利です。

こちらの記事の「変数を使ったページ遷移(ページ数が計算しないとわからない時)」をご覧ください。

繰り返し1回目はA2、2回目はA3、3回目はA4…という風に、繰り返しごとに書き込むセルの行数をずらしていきたいとき、シートに書き込むアクションの範囲欄に計算を使用します。

こちらの記事の「3.ワークフローを作成>7.シートに情報を書き込む」でご紹介しています。

 ワークフローの設定例

変数の計算を使って、LoopやForEachの繰り返し1回ごとに指定するセレクタを繰り下げていく方法をご紹介します。

今回は例として、弊社公式ホームページに掲載されているリンクを、繰り下げてクリックしていくワークフローを作成します。

OpenBrowserアクションにURLを指定し、使用するWebサイトを開きます。
今回は、弊社公式サイトを使用します。

https://autoro.io/

ここに掲載されている6つのユースケースを上から順にクリックしていく想定です。

ユースケースのリンクが6つあるため、回数を6としたLoopを設定します。

今回は繰り返し対象に指定できるリストが存在しないため使用しませんが、フローによってはForEachでも設定可能です。

試しに上から3番目までのセレクタを調べると、以下のようになっています。

1番目li.c-list-usecase__item:nth-child(1)
2番目li.c-list-usecase__item:nth-child(2)
3番目li.c-list-usecase__item:nth-child(3)

つまり:nth-child()のカッコ内の数字が連番になっていることがわかります。

またLoopでは、繰り返し回数を格納する変数iが自動的に定義された状態になっています。(詳しくはこちら
変数iの初期値は0のため、繰り返し回数に合わせて:nth-childの数値を1から順に指定するには、+1する必要があります。

よって、この計算を含めたセレクタは以下になります。これをClickアクションのCSSセレクタ欄に設定します。

li.c-list-usecase__item:nth-child(${parseInt(i) + 1})

※ForEachの場合

ForEachの繰り返し回数を格納する変数は、手動で設定する必要があります。

ForEachの詳細設定(vマーク)を開き、「繰り返し回数を格納する変数名(withIndex)」パラメータに、任意の変数名を入力すると設定可能です。
初期値はLoopのiと同じく、0となっています。

セレクタが見つからなくなってしまうため、次の繰り返しに行く前にトップページに戻る処理が必要となります。

GoToアクションにトップページのURLを指定します。

以上でワークフローの設定は完了です。

ログを見ると、繰り返しのClickごとに1つ目、2つ目…と順にユースケースのリンクをクリックし、開けていることが確認できます。

# ブラウザを開く
+open_browser_1:
action>: OpenBrowser
url: 'https://autoro.io/'
lang: 'ja-JP'
headless: true
confirm: true
windowSize: '1920 x 1080'
useShadowDomSelector: false
private: false

# 繰り返し
+loop_1:
loop>: 6
_do:

# クリック_ユースケースを上からクリック
+click_1:
action>: Click
browser: +open_browser_1
selector: 'li.c-list-usecase__item:nth-child(${parseInt(i) + 1})'
confirm: true
waitAfter: 5000
ignoreError: true
timeout: 30000
waitForDownload: false
private: false

# URLへ遷移
+go_to_1:
action>: GoTo
browser: +click_1
url: 'https://autoro.io/'
waitAfter: 5000
private: false
[参考記事]

変数に保存する繰り返し

このページは役に立ちましたか?