★アクションの説明、概要
JobAutoのブラウザ操作で、 Webページ内の一覧や表などにある複数の要素を 順番に繰り返し処理する方法について説明します。
「要素の繰り返し処理」アクションを使用すると、 Webページに表示されている複数件のデータを1件ずつ処理したり、 一覧や表から繰り返し値を取得したりできます。
繰り返し対象は、 XPath、XPathのフィルター、XPathの除外、 表示値のフィルター、取得範囲などを使って調整できます。 また、開始行・終了行・ステップを指定することで、 繰り返す位置や間隔を設定できます。
一覧の一部しか繰り返し対象にならない場合や、 想定とは違う要素が対象になる場合は、 「繰り返しの対象リスト」を確認し、 XPathやフィルター、取得範囲などの設定を見直します。
このページでは、 「要素の繰り返し処理」アクションの作成方法と設定項目、 Webページの一覧や表をうまく繰り返し処理できない場合の 確認ポイントについて説明します。
★アクションの作成方法
★アクションの設定画面について
繰り返し処理内で値の取得を行っていた場合、値の取得に失敗すると取得した値の格納先の変数は初期化されます。
例)
1行目 値の取得が成功し、変数Aへ値が格納される
2行目 値の取得が失敗、このとき変数Aの値は初期化される
表の値を丸ごと取得したいときは、こちらをご参照ください。
アクション設定画面の設定項目についての説明は以下の通りです。
1.基本設定
1-1.名前
ループの名前を設定します。ここで設定した名前は、マウス操作などの高度な設定のrangenameで選択することができます。
1-2.xpath
要素の指定を行います。変数参照可能です。
1-3.xpathのフィルター
ループの対象にフィルターをかけます。対象にする要素のxpathを入力します。
1-4.xpathの除外
ループの対象から外す要素のxpathを入力します。
例)histListData pauseというClassのdivタグを処理対象から外します
//div[@class=”histListData pause”]
1-5.表示値のフィルター
ループの対象にフィルターをかけます。対象にする要素のテキストを入力します。
1-6.取得範囲
ループの範囲を設定します。
・現在の範囲の要素
ここまでの設定した内容の要素を選択します。
・拡張した範囲の要素
ここまでの設定した内容に近い要素も選択します。
1-7.繰り返しの対象リストの操作
ここまでの設定をもとに繰り返しの対象の要素が一覧に表示されます。
・再読込
設定を変更したときに使います。設定を変更したときに再読込して、繰り返しの対象があっていることを確認しましょう。
・親へ移動
HTMLの1つ上の階層を選択します。
・子へ移動
HTMLの1つ下の階層を選択します。
・並び順
繰り返しの順番を変更します。
・開始行
繰り返しの開始位置を指定します。指定しない場合、右側の一覧の先頭から 繰り返し が開始されます。変数参照可能です。
・終了行
繰り返しの終了位置を指定します。指定しない場合、指定しない場合、右側の一覧の最後まで繰り返します。変数参照可能です。
・ステップ
繰り返しの間隔を設定します。たとえば繰り返しの対象が1~10でステップを「3」とした場合、1つめ、4つめ、7つめが繰り返しの対象になります。
2.高度な設定
2-1.サイズ無しも含めて検索
操作対象の要素にサイズがない設定(隠れている、つぶれているなど)になっている場合に、チェックを入れることで操作対象にすることができます。
2-2.アラートが出ていればエラーとする
本アクションを実行するときにブラウザからアラートメッセージが表示されていた場合にエラーとするときは、チェックを入れます。
2-3.見つかった要素数
基本設定画面で表示されている繰り返しの対象となる数を取得し変数へ格納します。
2-4.要素が見つかるまでのタイムアウト(秒)
設定した秒数までロボットが要素を探します。
3.エラー発生時の対応
3-1. エラー時の処理
エラーが発生したときの設定を行います。詳細はこちらをご確認ください。
3-2.基点となる条件分岐
エラー時の処理で条件分岐の次のフローに移動を選択したときに、設定することができます。アクションでエラーが発生した場合、移動先の条件分岐を選択します。
3-3. エラー時にログ出力
エラーが発生したときにログに出力するか設定します。スケジュール実行したときのログへ出力されます。エラーとして扱わない場合は、チェックを外します。詳細はこちらをご確認ください。
Webページの一覧や表を繰り返し処理する場合
Webページに表示されている一覧や表など、 複数の要素を順番に処理する場合は、 「要素の繰り返し処理」アクションを使用します。
繰り返し対象となる要素は 「繰り返しの対象リスト」に表示されます。 設定を変更した場合は「再読込」を行い、 想定している要素が対象になっているか確認してください。
繰り返し対象を絞り込む場合
一覧に含まれるすべての要素ではなく、 条件に合う要素だけを繰り返し処理したい場合は、 XPathのフィルターや表示値のフィルターを利用できます。
逆に、 特定の要素を繰り返し対象から外したい場合は、 「XPathの除外」を使用します。
取得範囲やフィルターを使って 繰り返し対象を調整する具体的な方法については、 JobAutoで要素の繰り返し範囲を調整する方法 も確認してください。
一覧の一部しか繰り返し対象にならない場合
想定している要素の一部しか 「繰り返しの対象リスト」に表示されない場合は、 「取得範囲」を確認します。
「現在の範囲の要素」で対象にならない要素がある場合は、 「拡張した範囲の要素」を選択することで、 設定した内容に近い要素も対象にできます。
取得範囲を変更したあとは、 「再読込」を行い、 目的の要素が繰り返し対象になっているか確認してください。
不要な要素まで繰り返し対象になる場合
処理したくない要素まで繰り返し対象に含まれる場合は、 「XPathの除外」を使用します。
対象にしたい要素の条件が明確な場合は、 「XPathのフィルター」や 「表示値のフィルター」を使って 繰り返し対象を絞り込むこともできます。
繰り返す開始位置・終了位置を指定する場合
一覧の途中から繰り返し処理を開始したい場合は「開始行」、 途中で終了したい場合は「終了行」を設定します。
開始行と終了行は、 JobAutoの変数を参照して指定することもできます。
最後の要素だけを処理する場合
繰り返し対象の中から 一番最後の要素だけを処理したい場合は、 「開始行」に「-1」を設定できます。
開始行へ「-1」を設定する方法については、 JobAutoで要素の繰り返し範囲を調整する方法 も確認してください。
一定の間隔で繰り返し処理する場合
「ステップ」を使用すると、 繰り返す間隔を設定できます。
たとえば、 繰り返し対象が1~10まであり、 ステップを「3」に設定した場合は、 1つ目、4つ目、7つ目が繰り返し対象になります。
繰り返し対象の件数を取得する場合
高度な設定の「見つかった要素数」を使用すると、 基本設定画面に表示されている 繰り返し対象の数を取得して、 JobAutoの変数へ格納できます。
繰り返し対象が何件あるかを 後続処理で利用したい場合に使用できます。
画面上に見えていない要素も対象にする場合
操作対象の要素が隠れている、 またはサイズを持たない状態になっている場合は、 高度な設定の 「サイズ無しも含めて検索」を確認してください。
要素が見つからず繰り返し処理できない場合
繰り返し対象となる要素が見つからない場合は、 まずXPath、XPathのフィルター、 XPathの除外、表示値のフィルター、 取得範囲などの設定を確認します。
設定を変更した場合は「再読込」を行い、 「繰り返しの対象リスト」に 目的の要素が表示されているか確認してください。
XPathなどの要素指定をうまく設定できない場合は、 JobAutoでブラウザの要素が見つからない場合の設定方法 も確認してください。
Webページの表示に時間がかかる場合
Webページの表示に時間がかかり、 繰り返し対象の要素を取得できない場合は、 高度な設定の 「要素が見つかるまでのタイムアウト(秒)」を確認してください。
設定した秒数までJobAutoが対象の要素を探します。
繰り返し処理の中で値を取得する場合
一覧や表の各要素から文字や値を取得する場合は、 「要素の繰り返し処理」の中で 「値取得」アクションを使用します。
値取得アクションの高度な設定にある「rangename」では、 値を探す対象となる 要素の繰り返し範囲を指定できます。
値取得アクションの設定については、 JobAutoでWebページの文字・値を取得する方法 も確認してください。
繰り返し処理の中で値を取得する場合の注意点
要素の繰り返し処理の中で値取得を行っている場合、 値の取得に失敗すると、 取得した値の格納先として設定している変数は初期化されます。
たとえば、 1件目で値取得に成功し、 2件目で値取得に失敗した場合、 2件目の処理では 1件目に取得した値がそのまま残るのではなく、 格納先の変数が初期化されます。
複数ページにまたがる一覧を繰り返し処理する場合
検索結果などが複数のWebページに分かれている場合は、 1ページ内の要素を繰り返すだけでなく、 次のページへ移動する処理も組み合わせます。
ページをまたいで繰り返し処理する例については、 JobAutoでページをまたがって繰り返し処理を行う方法 も確認してください。
「値取得」と「要素の繰り返し処理」の違い
| やりたいこと | 使用するアクション |
|---|---|
| Webページの指定した要素から文字や値を取得する | 値取得 |
| 一覧や表などにある複数の要素を順番に処理する | 要素の繰り返し処理 |
一覧や表の各要素から値を取得する場合は、 「要素の繰り返し処理」の中で 「値取得」を使用します。
要素の繰り返し処理がうまくいかない場合の確認順序
- 「繰り返しの対象リスト」に目的の要素が表示されているか確認する
- 設定変更後に「再読込」を行う
- XPathを確認する
- XPathのフィルターを確認する
- XPathの除外を確認する
- 表示値のフィルターを確認する
- 「取得範囲」が適切か確認する
- 開始行・終了行・ステップを確認する
- 必要に応じて「サイズ無しも含めて検索」を確認する
- 表示に時間がかかる場合は「要素が見つかるまでのタイムアウト(秒)」を確認する
