JobAutoでブラウザの要素が見つからない場合の確認方法
JobAutoのブラウザ操作で、
操作したいボタンや入力欄などの要素が見つからない場合や、
目的とは違う要素を操作してしまう場合の
設定方法について説明します。
ブラウザアクションでは、
XPath、Attribute、Value、テキストパターン、
要素のインデックスなどの情報を使って
操作対象となるWebページの要素を指定します。
Webサイトの構成によっては、
アクションを作成したときは正常に動いても、
テストやスケジュール実行では
要素を見つけられなくなる場合があります。
また、
同じ文字や似た構造の要素が複数存在する場合は、
目的とは違う場所へフォーカスが当たることがあります。
このページでは、
「要素にフォーカス」による確認、
再フォーカスによる操作対象の再設定、
テキストパターン、class、XPath、
要素のインデックスなどを使って、
ブラウザの操作対象を安定して指定するためのポイントを説明します。
再フォーカスで操作する要素を設定し直す
アクションの編集画面を開いた状態で、ブラウザ上の操作したい場所を選択すると、操作対象を設定し直すことができます。
ブラウザ内で対象を選択して右クリックし、再フォーカスを使って操作する要素を再設定してください。
テキストパターンで要素を指定する
画面上に表示されている文字を使って、操作する要素を指定することもできます。
ボタン名やリンクの文字などを利用できる場合は、テキストパターンを使って要素を指定します。
Webサイトによっては、テキストパターンを設定した直後は正常に動いても、ロボットをテストすると要素が見つからずエラーになる場合があります。
その場合は、テキストパターンに設定している文字の前へ「.*」を付けることで正常に動作する場合があります。
たとえば、画面上の「ログイン」という文字を使っている場合は、次のように設定します。
classは必要な場合だけ使用する
ブラウザアクションを作成したとき、Attributeに「class」が自動的に設定される場合があります。
classはWebページのデザインや表示を制御するためにも利用されるため、Webサイト側の変更によって値が変わることがあります。
そのため、classを使わなくても対象を特定できる場合は、classを空欄にして設定する方法も検討してください。
IDが変わるWebサイトではXPathの設定を確認する
操作対象のHTMLにIDが設定されている場合、JobAutoではIDを使ったXPathが設定されることがあります。
同じ画面でもアクセスするたびにIDが変化するWebサイトでは、作成時のXPathをそのまま使用すると、次回実行時に要素を見つけられなくなる場合があります。
IDが頻繁に変わるWebサイトでは、ID付きのXPathを利用する設定を外して要素を指定する方法を検討してください。
実行するたびにXPathが変わる場合
Webページの構造によっては、ロボットを作成したときと実行したときで、要素の位置を表すXPathが変わることがあります。
たとえば、作成時のXPathが次のようになっていたとします。
//*[@id="testdayo"]/div/div[2]/div[6]/img
別のタイミングで実行すると、次のように要素の位置が変わることがあります。
//*[@id="testdayo"]/div/div[2]/div[8]/img
この場合、位置を固定している「div[6]」や「div[8]」の部分を使わず、次のようなXPathにすることで、位置の変化を吸収できる場合があります。
//*[@id="testdayo"]/div/div[2]/div/img
Webページの構造に応じて、実行するたびに変わる部分をXPathから外せないか確認してください。
同じ要素が複数ある場合はインデックスを変更する
同じ文字のボタンが複数表示されている場合や、同じ条件に一致する要素が複数存在する場合は、JobAutoが操作したい場所以外の要素を選択することがあります。
その場合は、アクションの「高度な設定」にあるインデックスを変更して、何番目の要素を操作するか指定します。
インデックスを変更した後は、「要素にフォーカス」を実行し、実際に操作したい場所へフォーカスが当たることを確認してください。
「要素が見つかりません」となる場合
ブラウザアクションを実行したときに
「要素が見つかりません」となる場合は、
まずアクション設定画面の
「要素にフォーカス」を使用してください。
現在の設定内容で
JobAutoが操作対象となる要素を認識できるか確認します。
目的の要素へフォーカスが当たらない場合は、
XPath、テキストパターン、
Attribute、Valueなど、
操作対象を特定するための設定を確認します。
作成したときは動いたのに実行すると失敗する場合
アクションを作成したときは正常に動いたにもかかわらず、
テストやスケジュール実行で
要素を見つけられなくなる場合があります。
この場合は、
Webページを表示するたびに
操作対象のHTMLやXPathの一部が
変化していないか確認してください。
また、
テキストパターン、class、ID付きXPathなど、
Webサイトの変更によって値が変わりやすい条件を
要素指定に使用していないか確認します。
目的とは違うボタンや入力欄を操作する場合
アクションを実行すると
目的とは違う場所をクリックしたり、
違う入力欄へ値を入力したりする場合は、
現在の設定に一致する要素が
Webページ内に複数存在している可能性があります。
まず「要素にフォーカス」を使用し、
実際にどの要素へフォーカスが当たるか確認してください。
同じ条件の要素が複数見つかる場合は、
「要素のインデックス」を使って
操作する要素を指定します。
操作対象そのものを変更したい場合
既存のブラウザアクションについて、
現在設定されている要素とは別の場所を
操作対象に変更したい場合は、
再フォーカスを使用します。
アクションの編集画面を開いた状態で
ブラウザ上の新しい操作対象を選択し、
右クリックして操作箇所を再設定します。
操作対象の再設定については、
JobAutoでブラウザアクションの操作対象を再設定する方法
も確認してください。
要素の繰り返し処理の中だけうまく動かない場合
通常のブラウザ操作では正常に動くのに、
「要素の繰り返し処理」の中では
目的の場所を操作できない場合は、
繰り返し範囲と要素指定の関係も確認してください。
要素の繰り返しでは、
処理対象となる範囲やXPathの設定によって、
ロボットが探す要素が変わります。
要素の繰り返しを安定して設定する方法については、
要素の繰り返しの便利な使い方
も確認してください。
Webページの要素にフォーカス自体が当たらない場合
操作対象をクリックしても
JobAutoのフォーカスを示すピンクの四角が
表示されない場合は、
このページで説明している
XPathやインデックスの調整とは
別の原因である可能性があります。
ChromeやEdgeでは、
Webサイトによって
通常の要素指定方法ではフォーカスが当たらない場合があります。
この場合は、
ブラウザの要素指定方法を
「手動設定」へ変更する方法を確認してください。
詳しい方法については、
JobAutoでブラウザの要素にフォーカスが当たらない場合の対処方法
を確認してください。
フォーカスは当たるが右クリックメニューが出ない場合
操作したい要素にはフォーカスが当たっているものの、
右クリックしても
JobAutoのアクション選択メニューが表示されない場合は、
要素の指定方法とは別の問題です。
この場合は、
ChromeやEdgeのDevToolsからXPathを取得し、
ブラウザアクションへ手動設定する方法があります。
詳しい方法については、
JobAutoで右クリックメニューが出ずブラウザアクションを追加できない場合
を確認してください。
右クリックするとWebサイト側のメニューが消える場合
Webサイトのプルダウンやメニューを表示した状態で
操作対象を右クリックすると、
そのメニュー自体が消えてしまう場合があります。
これは、
JobAutoの右クリックメニューが表示されない問題とは
別のケースです。
この場合は、
Ctrl+Shift+F2キーを使用して
XPathの一覧から操作対象を選択する方法を確認してください。
詳しい方法については、
右クリックしてメニューを表示できない場合は?
を確認してください。
ブラウザの要素指定で困った場合の確認順序
- 「要素にフォーカス」を使って、現在の設定でどこが選択されるか確認する
- 目的の要素が選択されない場合は、XPathやテキストパターンなどの設定を確認する
- Webサイトの表示ごとに変化するclassやID、XPathを使用していないか確認する
- 同じ条件の要素が複数ある場合は「要素のインデックス」を確認する
- 操作対象そのものを変更する場合は再フォーカスを行う
- 要素の繰り返し内の場合は、繰り返し範囲やXPathも確認する
- フォーカス自体が表示されない場合は、ブラウザの要素指定方法を確認する
- フォーカスは当たるが右クリックメニューが出ない場合は、XPathの手動設定方法を確認する
- 右クリックするとWebサイト側のメニューが消える場合は、Ctrl+Shift+F2を使う方法を確認する
関連するブラウザ操作・FAQ