★概要
JobAutoのブラウザ操作で、JavaScriptを使ってXPathに一致する要素の件数を取得する方法を説明します。Webページの一覧や表の行数を調べたい場合などに利用できます。
「JavaScript実行」アクションからdocument.evaluate()を実行し、取得した件数を戻り値としてJobAutoの変数へ格納します。値は後続の条件分岐などで使用できます。
「JavaScript実行」アクション自体の設定方法は、JobAutoでJavaScriptを実行する方法をご確認ください。
★XPathに一致する要素数を取得する方法
対象のWebページをブラウザで開き、「JavaScript実行」アクションに次のJavaScriptを設定します。XPathは取得したい要素に合わせて変更してください。
var result = document.evaluate( '//*[@id="topicsfb"]/div/ul/li/a', document, null, 7, null);return result.snapshotLength;
この例では、XPath //*[@id="topicsfb"]/div/ul/li/a に一致する要素の件数を取得します。XPathはサンプルです。実際のWebページの構造に合わせて指定してください。
JavaScriptの処理内容
document.evaluate():指定したXPathを評価して、一致した要素を取得します。document:現在表示しているWebページを検索対象にします。7:XPathの結果を順序付きスナップショットとして取得する指定です(XPathResult.ORDERED_NODE_SNAPSHOT_TYPEと同じ値です)。result.snapshotLength:一致した要素の件数を取得します。return:取得した件数をJobAutoへ返します。
例えば、XPathに一致する要素が5件あれば戻り値は「5」、一致する要素がなければ「0」になります。
取得した件数をJobAutoの変数に格納する
「JavaScript実行」アクションの基本設定にある「戻り値」で、件数の格納先となる変数を指定してください。取得した件数は、後続アクションの条件判定などに利用できます。
戻り値の設定方法は、JavaScript実行アクションのマニュアルで説明しています。
★操作動画
XPathに一致する要素の件数をJavaScriptで取得する操作例です。
★件数が取得できない場合の確認ポイント
結果が「0」になる場合
指定したXPathに一致する要素がない場合、取得結果は「0」になります。XPathが正しいか、対象のWebページが表示されているか確認してください。
ページの表示やデータの読み込みが終わる前に実行すると、必要な要素を取得できない場合があります。対象が表示された状態で、JavaScriptを再実行してください。
想定した件数と異なる場合
XPathで指定した範囲が広すぎたり、必要な要素を含んでいなかったりする場合があります。取得対象の要素をXPathで正しく指定できているか確認してください。
また、この方法で取得するのはJavaScriptの実行時点でXPathに一致した要素数です。画面の更新などで要素の数が変わった場合は、再度アクションを実行して件数を取得してください。
XPathや要素指定を見直す場合は、ブラウザの要素が見つからないときの設定方法もご確認ください。
繰り返し処理の対象件数を取得したい場合
「要素の繰り返し処理」アクションで繰り返し対象の件数を取得する場合は、高度な設定の「見つかった要素数」で件数を変数へ格納できます。繰り返し処理の対象件数を知りたいだけであれば、JavaScriptを使わずに取得する方法もご検討ください。
詳しくは、JobAutoでWebページの一覧・表を繰り返し処理する方法をご確認ください。
関連するマニュアル・FAQ
- JobAutoでJavaScriptを実行する方法:JavaScriptの設定と戻り値の格納方法
- JobAutoでWebページの一覧・表を繰り返し処理する方法:繰り返し処理の対象件数を取得する方法
- ブラウザの繰り返し対象が何件あるか知りたい:繰り返し対象の件数に関するFAQ
- JobAutoでブラウザの要素が見つからないときの設定方法:XPathの指定を確認する方法
