Docly Child

変数を使ってページ遷移する

1743 views

この記事では、変数を使ってページ遷移していく処理を説明します。

 

 

【できるようになること】

  • 変数を使ったページ遷移


 

 変数を使ったページ遷移

ページ遷移に変数を使った方が楽なケース

ページ遷移をする際には、 下記のようなボタンを押して遷移するケースが一般的ですが、取得したい件数が多い時やボタンのセレクタが複雑なケースもあります。こうした際、下記弊社サイトのようにページ数がURLに入っている場合は、この数字を利用してGoToアクションでページを遷移していくことが可能です。

弊社サイト例
https://support.autoro.io/?s=autoro&post_type=docs&search_in_doc=all
https://support.autoro.io/page/2/?s=autoro&post_type=docs&search_in_doc=all
https://support.autoro.io/page/3/?s=autoro&post_type=docs&search_in_doc=all

(最初のURLにページ数がないですが、このように法則性がある場合は、https://autoro.io/blogs/page/1/?s=autoro&post_type=docs&search_in_doc=allという風に1ページ目も指定することで開けるケースが多いです。)

今回のように「https://autoro.io/blogs/page/ページ数/…」といったURLの場合は、ページ数の箇所に変数を入れワークフローサンプル1のように設定すると楽にページ遷移ができます。

 

流れとしては、ページ数の箇所を変数に置き換えた後、繰り返しごとに変数に格納した数字をカウントアップしていく形式です。
1ずつカウントアップしていく場合、以下の式を使用します。

${parseInt(変数名) + 1}
  • parseIntは変数を整数として認識するための文言です。
    これがない場合、”1″ + 1 = “11”といったように文字結合が行われます。
  • 式全体を${}で囲うようにしてください。

また、サンプル1では繰り返す回数を手動で指定していますが、繰り返しに必要な回数がサイトから取得できる場合、そちらで設定することをおすすめします。
例えば、以下だと最後のページが7とボタンから取得できます。

 

例えば、590件データがあり1ページ辺りは100件しか表示されない

といった計算しないとページ数がわからない場合は、590の数字を取得し、ワークフローサンプル2のようにするとページ分実行可能です。

(${Math.ceil(変数/100)}で100で割って切り上げとなるので、これをloop回数の設定に入れるとページ分繰り返しができます。)

# ブラウザを開く
+open_browser_1:
  action>: OpenBrowser
  url: 'https://support.autoro.io/page/1/?s=autoro&post_type=docs&search_in_doc=all'
  lang: 'ja-JP'
  headless: true
  useShadowDomSelector: false
  private: false

# 変数に保存_最初のページ数
+store_value_2:
  action>: StoreValue
  key: n
  value: 1
  private: false

# 繰り返し_ページ分繰り返し
+loop_1:
  loop>: 7
  _do:

    # 変数に保存_nに1足して次のページへ進む(parseIntは変数を整数として読むための定型句)
    +store_value_1:
      action>: StoreValue
      key: n
      value: ${parseInt(n) + 1}
      private: false

    # URLへ遷移_次のページへ進む
    +go_to_1:
      action>: GoTo
      browser: +open_browser_1
      url: 'https://support.autoro.io/page/${n}/?s=autoro&post_type=docs&search_in_doc=all'
      private: false
# 変数に保存_対象データ数
+store_value_1:
  action>: StoreValue
  key: totalnum
  value: 590

# 繰り返し_100件ずつ表示されるので、切り上げて6回繰り返しが必要
+loop_1:
  loop>: ${Math.ceil(totalnum/100)}
  _do:

    # テキストを作成
    +text_1:
      action>: Text
      text: '繰り返す処理'