JobAutoでWebページの一覧・表を繰り返し処理する方法

★アクションの説明、概要

JobAutoのブラウザ操作で、Webページ内の一覧や表など、複数の要素を順番に繰り返し処理する方法について説明します。 要素の繰り返し処理を使うことで、Webページに表示されている複数件のデータを1件ずつ処理したり、一覧や表の値を取得したりできます。

繰り返しの対象は、XPath、XPathのフィルター、XPathの除外、表示値のフィルター、取得範囲などを使って調整できます。 また、開始行・終了行・ステップを指定することで、処理する範囲や順番を変更できます。

一覧の一部しか繰り返し対象にならない場合や、想定とは違う要素が対象になる場合は、繰り返し対象の指定や取得範囲を確認してください。

このページでは、要素の繰り返し処理アクションの作成方法と設定項目について説明します。 記事後半では、一覧や表のデータをうまく繰り返し処理できない場合の確認ポイントも紹介します。


★アクションの作成方法


★アクションの作成方法

繰り返し処理内で値の取得を行っていた場合、値の取得に失敗すると取得した値の格納先の変数は初期化されます。
例)
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ページの一覧や表を繰り返し処理できない場合

要素の繰り返し処理を実行しても、一覧や表のデータを想定どおりに処理できない場合は、まず基本設定に表示されている「繰り返しの対象リスト」を確認してください。

XPathやフィルターなどの設定を変更した場合は「再読込」を行い、実際に繰り返し対象となる要素が正しく一覧に表示されているか確認します。

一覧の一部しか繰り返し対象にならない場合

Webページの構造によっては、通常の設定では一覧の一部だけが繰り返し対象になる場合があります。

この場合は、「取得範囲」を確認してください。 「現在の範囲の要素」では対象にならない要素がある場合、「拡張した範囲の要素」を利用することで、近い構造の要素も繰り返し対象にできる場合があります。

取得範囲やフィルターを使った詳しい設定例については、 要素の繰り返しの便利な使い方 も確認してください。

特定の要素だけを繰り返し処理する場合

一覧のすべてを処理するのではなく、特定の要素だけを対象にしたい場合は、XPathのフィルターや表示値のフィルターを利用できます。

逆に、特定の要素を処理対象から外したい場合は、「XPathの除外」を使用します。

「要素の繰り返しの便利な使い方」では、XPathのフィルター、XPathの除外、表示値のフィルターを使って対象を絞り込む例が紹介されています。

繰り返しの開始位置や終了位置を変更する場合

一覧の途中から処理したい場合や、一部の要素だけを処理したい場合は、「開始行」「終了行」を設定します。

また、「ステップ」を設定すると、一定の間隔で要素を繰り返し処理できます。 たとえばステップを3にすると、1つ目、4つ目、7つ目のように処理対象を間引くことができます。

一番最後の要素だけを処理する場合

繰り返し対象の一番最後の要素だけを処理したい場合は、開始行に「-1」を設定する方法があります。

具体的な設定例については、 要素の繰り返しの便利な使い方 も確認してください。

画面上に見えていない要素も繰り返し対象にする場合

HTML上には存在していても、画面上では隠れている、またはサイズを持たない要素を繰り返し対象にする必要がある場合は、高度な設定の「サイズ無しも含めて検索」を確認してください。

繰り返し対象の件数を取得する場合

高度な設定の「見つかった要素数」を使うことで、基本設定画面で表示されている繰り返し対象の件数を変数へ格納できます。

取得した件数は、繰り返し処理の終了判定や、取得件数の確認などの後続処理で利用できます。

要素が見つからず繰り返し処理できない場合

ロボット作成時には繰り返し対象を取得できても、テストやスケジュール実行では要素が見つからない場合があります。

Webサイト側でXPathやHTML構造が変化している場合は、繰り返し対象となるXPathやフィルターの設定を確認してください。

Webページの表示に時間がかかる場合は、高度な設定の「要素が見つかるまでのタイムアウト(秒)」も確認します。

繰り返し処理の中で値を取得できない場合

要素の繰り返し処理の中で値取得を行い、ある行で値の取得に失敗した場合は、取得した値の格納先として設定している変数が初期化されます。

そのため、一覧の一部に値が存在しない場合は、後続処理で前の行の値をそのまま利用してしまわないよう注意してください。

Webページの一覧・表を繰り返し処理できない場合の確認順序

一覧や表を想定どおりに繰り返し処理できない場合は、まず「繰り返しの対象リスト」を確認してください。

次に、XPath、XPathのフィルター、XPathの除外、表示値のフィルター、取得範囲を確認します。 処理する位置を限定している場合は、開始行、終了行、ステップも確認してください。

対象となる要素が画面上で隠れている可能性がある場合は「サイズ無しも含めて検索」、Webページの表示に時間がかかる場合は「要素が見つかるまでのタイムアウト(秒)」も確認します。

ブラウザ操作の基本的な設定方法については、 JobAutoのブラウザ操作マニュアル も確認してください。

ブラウザ操作全般のトラブルについては、 JobAutoブラウザ操作FAQ もあわせて確認してください。

2件のコメント

コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください。