★質問・概要
Q.JobAutoでWebページを操作すると、「要素が見つかりましたが、削除もしくは変更されています」と表示され、ロボットが停止します。どのような意味のエラーで、どうすれば対処できますか?
★回答
操作対象の要素を見つけた後、実際に操作するまでの間にWebページの内容が更新され、見つけていた要素を利用できなくなった場合に発生するエラーです。
Ajaxなどでページの一部を更新するWebサイトでは、見た目が同じ入力欄やボタンであっても、内部のHTML要素が作り直されることがあります。ページの表示や更新が落ち着いてから操作するよう、待機するアクションを組み合わせてください。
1.エラーメッセージの意味
例えば、次のような順序で発生します。
- JobAutoがWebページを開き、入力欄やボタンなどの操作対象を見つけます。
- Webサイトの動的処理によって、対象のHTML要素が削除・置換・再生成されます。
- JobAutoが、先ほど見つけた要素へ値入力やクリックなどを実行しようとします。
- その要素を操作できなくなっているため、「要素が見つかりましたが、削除もしくは変更されています」と表示されます。
このエラーは、必ずしも操作対象のボタンや入力欄が画面から完全になくなったことを意味しません。画面上では同じ場所に表示されていても、Webサイト内部では別の要素に置き換わっている可能性があります。
2.「この要素が出るまで待つ」アクションを使う
画面を開いた直後など、操作対象の表示が間に合わない場合は、ブラウザ操作の「この要素が出るまで待つ」アクションを利用します。
- 対象ページを開くアクションの後に、「この要素が出るまで待つ」を配置します。
- 次にクリックまたは値入力するボタンや入力欄など、操作対象として確認したい要素を指定します。
- 対象ページの表示に必要な時間を踏まえて待機条件を設定します。
- 待機アクションの後に、クリックや値入力のアクションを実行します。
注意:対象要素が一度表示された後に再度作り直されるサイトでは、「この要素が出るまで待つ」だけで更新完了を判定できない場合があります。そのときは、次の方法もあわせて検討してください。
3.画面の更新完了を確認してから操作する
Webサイトが読み込み中の表示や更新中のメッセージを出す場合は、必要に応じて「この要素が消えるまで待つ」アクションを使い、処理中を示す要素が消えてから次へ進む方法もあります。
例えば、検索ボタンを押したあとで一覧表が再描画されるページでは、検索処理中の表示が消え、操作したい行やボタンが表示されたことを確認してから次のアクションへ進めます。実際に何を待機条件とするかは、操作するWebサイトの作りによって異なります。
4.「ロボット一時停止」で一定時間待つ
サイトの動的な処理が終了する目安の時間が分かっている場合は、「ロボット一時停止」アクションで指定した秒数だけ待ってから操作する方法もあります。
- Webページを開く、または画面を更新するアクションの後に「ロボット一時停止」を追加します。
- 「待ち方式」で「指定された待機時間まで停止する」を選びます。
- 「待機時間(秒)」に必要な時間を設定します。
- 停止後のアクションを実行し、同じエラーが起きないか確認します。
ただし、固定の秒数だけ待つ方法では、ネットワークやWebサイトの負荷によって更新に要する時間が変わると、エラーが再発する場合があります。可能であれば、画面の状態を条件とする待機方法を優先して検討してください。
設定項目の詳細は、JobAutoでロボットを一時停止する方法をご確認ください。
5.「入力前クリアに失敗しました」も表示される場合
値入力アクションで「要素が見つかりましたが、削除もしくは変更されています」に続いて「入力前クリアに失敗しました」と表示されることがあります。この場合、入力欄を操作する途中で対象の要素が変わった可能性もあります。
まず、値入力を開始する時点で対象の入力欄が表示され、Webサイトの更新処理が終わっているかを確認してください。同じエラーメッセージでも、入力欄の状態や設定など別の原因が関係する可能性があるため、必ず動的更新が原因とは断定しません。
6.エラーが改善しない場合の確認事項
- エラーが発生するのはページを開いた直後か、検索・画面切り替えの直後か。
- 操作対象の要素が、画面表示中に入れ替わるWebサイトか。
- ロボデザインのステップ実行では成功し、全実行やスケジュール実行で失敗するか。
- 「この要素が出るまで待つ」「この要素が消えるまで待つ」などの待機条件が、実際の更新完了を表しているか。
- 操作対象を指定したアクションの設定やWebサイトのHTML構造が変更されていないか。
待機方法を見直しても改善しない場合は、JobAutoのバージョン、エラーメッセージ全文、対象の操作アクション、Webサイトで発生する画面更新の手順を整理し、サポートへお問い合わせください。
関連するマニュアル・FAQ
- JobAutoでロボットを一時停止する方法:待ち方式と待機時間を設定する方法
- JobAutoのブラウザ操作マニュアル:要素の操作・待機に関するアクション
- JobAuto 0.10.14 リリースノート:「要素が出るまで待つ」アクションの不具合修正情報
