2016-04-10 16 views
1

特定のページで、クロームエクステンションがいくつかのDOMノードのテキストをスクラップするコードを挿入します。&はバックグラウンドスクリプトに送信します。Chrome拡張コンテンツスクリプト:click()と非同期の結果

このようなノードの1つは、非同期呼び出しを発生させるボタンをクリックした後にのみ表示されます。小さなポップアップdivは、クリックして数ミリ秒後に表示されます。

私はちょうど私のコンテンツスクリプトでボタンのonClickコードを複製について考えたが、JSは&がuglifiedかなり複雑ですので、私はまだコールが何をしているかを把握することはできませんよ。また、コンテンツスクリプトからサイトのjsの名前空間にアクセスできるかどうかもわかりません。

私の計画は今だけの結果divをこすり&ボタンの.click()メソッドを呼び出すことですが、スクレーパーはdivを見つけることができません。

私は長いタイムアウトを設定ので、これをテストするために、それは非同期遅延の問題かもしれません考え出し:

document.querySelector('#buttonId').click(); 
setTimeout(console.log(document.querySelector('#popupDiv').innerText), 4500); 

は残念ながら、遅れ機能はまだnullを返します。

これを達成するより良い方法はありますか?

答えて

1

idでquerySelectorを使用する場合は、「#」を前に付ける必要があります。

また、タイムアウトを無名関数でラップする必要があります。

document.querySelector("#buttonId").click() 
setTimeout(function() { 
console.log(document.querySelector("#popupDiv").textContent) 
}, 4500) 
+0

ああ!ありがとうございました。私はOPで編集したセレクター文字列を単純化するとき、 '#'は私の一部で転写エラーでした。一度console.log()関数を修正すると、それは500 msの小さな遅延でさえ、魅力的に機能しました。 – Brandon

関連する問題