変数を使った計算を行う
この記事では、変数呼び出しのフォーマットを使って、ワークフロー内で簡単な計算を行う方法についてご紹介します。
・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}
「590件データがあり1ページ辺りは100件しか表示されない」といったサイトを使って繰り返しの操作を行う場合、ページ分の繰り返し回数を計算で算出すると便利です。
繰り返し1回目はA2、2回目はA3、3回目はA4…という風に、繰り返しごとに書き込むセルの行数をずらしていきたいとき、シートに書き込むアクションの範囲欄に計算を使用します。
ワークフローの設定例
変数の計算を使って、LoopやForEachの繰り返し1回ごとに指定するセレクタを繰り下げていく方法をご紹介します。
今回は例として、弊社公式ホームページに掲載されているリンクを、繰り下げてクリックしていくワークフローを作成します。
OpenBrowserアクションにURLを指定し、使用するWebサイトを開きます。
今回は、弊社公式サイトを使用します。
ここに掲載されている6つのユースケースを上から順にクリックしていく想定です。
試しに上から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となっています。
# ブラウザを開く
+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
変数に保存する繰り返し