を使用して作成されたWebページをNightmareJSで削り取ろうとしています。私が遭遇している問題は、ページを進めるためにボタンをクリックしようとしている間に、ボタン自体をクリックしようとする前にロードされていることを確認する必要があります。そうしないと、 "セレクタ別に要素を見つけることができません:セレクター "と呼ばれる。NightmareJS待機(セレクタ)がdojoベースのWebページで動作しない
待機時間(ミリ秒)で追加するが、サーバーが遅い、または表示するものが増えている場合は、待ち時間がオーバーランする可能性があります。これは明らかに避けたいものです。だから、私はwait(selector)メソッドを使ってみましたが、何が起こるかは、その時点でただ停止してしまうことです。この間にElectronブラウザが開いていて、セレクタ付きのボタンを含めてページが完全に正常に読み込まれました。クリックしてすべてを手動で実行できます。
は、ここで私が何をしようとしています何の例です:
nightmare
.click('#button')
.wait('#otherbutton')
.click('#otherbutton')
.catch((error) => console.log('Error:...', error));
最初のボタンがクリックされますと、ページのロードが、それはそこにハングアップし、第2のクリック機能が起こることはありません。
編集:Dojo Webkitについていくつかの調査をしたところ、ウェブページの読み込みに迷惑をかけると思われるspecial loaderが見つかりました。ただし、待機(セレクタ)がページを確認して確認する方法がわからないため要素がページにロードされているかどうかは、dojoローダーが根本的な原因であるかどうかを確認することはできません。
あなたの編集質問に答える: '.wait(セレクタ)'は、デフォルトで250ms毎にポーリングして(メモリサービング)、要素が存在するかどうかを問い合わせます。何もない。 Dojoローダーが問題を引き起こすのではないかと疑います。待機ポーリングはブラウザのコンテキストで実行されますが、ページには依存しません。 – Ross