2

Dojo WebkitNightmareJSを使用して作成された Web ページをスクレイピングしようとしています。私が遭遇している問題は、ボタンをクリックしてページを進めようとしているときに、ボタンをクリックしようとする前にボタン自体が読み込まれていることを確認する必要があることです。そうしないと、次のようなエラーが表示されます。セレクター」、これは予想されることです。

wait(milliseconds) を追加することは機能しますが、サーバーが遅いか、表示するものが多数ある状況では、読み込みが待機時間をオーバーランする可能性があります。これは明らかに避けたいことです. そこで、wait(selector) メソッドを使用してみましたが、その時点で停止するだけです。このすべての間、Electron ブラウザーは開いており、ページは完全に正常にロードされており、セレクター付きのボタンも含まれています。ボタンをクリックして、すべてを手動で行うことができます。

これが私がやろうとしていることの例です:

nightmare
  .click('#button')
  .wait('#otherbutton')
  .click('#otherbutton')
  .catch((error) => console.log('Error:...', error));

最初のボタンがクリックされてページが読み込まれますが、そこでハングアップし、2 番目のクリック機能は発生しません。

編集: Dojo Webkitについて調査した結果、Web ページの読み込み方法を混乱させていると思われる特別なローダーがあることがわかりました。要素がページに読み込まれましたが、Dojo ローダーが根本的な原因であるかどうかはわかりません。それでも、何らかの回避策がある場合はありがたいです。

4

1 に答える 1

0

今日もこれにぶち当たりました。

私は cucumber js で悪夢を実行していましたが、待機関数が応答する前にテストがタイムアウトしました。

ソース コードを確認したところ、"wait" 関数で 2 番目のパラメーターとしてタイムアウト パラメーターを使用できることがわかりました。

タイムアウトを追加することで問題を回避しました .wait('selector', 2000)

これは最新バージョンのナイトメアのバグだと思います。

お役に立てれば。

于 2016-11-28T20:23:07.810 に答える