Puppeteer で JavaScript ウィンドウ変数にアクセスする
P粉787806024
2023-09-04 23:32:41
<p>私の Puppeteer スクリプトでは、ページをロードする前にファイル JS を使用して実行します。</p>
<pre class="brush:js;toolbar:false;">const preloadFile = fs.readFileSync('./file.js', 'utf8');
const id = await page.evaluateOnNewDocument(preloadFile);
</pre>
<p>file.js には次のものが含まれます: </p>
<pre class="brush:js;toolbar:false;">const i = setInterval(()=>{
if (window.turnstile) {
クリア間隔(i)
window.turnstile.render = (a,b) => {
b.userAgent = navigator.userAgent
window.tsCallback = b.callback
window.action = b.action
window.data = b.cData
コンソールログ(b)
「ふー」を返す
}
}
},50)
</pre>
<p>このスクリプトは、オブジェクト (Action、Cdata、Callback...) をブラウザのコンソールに出力します</p>
<p>puppeter 側からこのオブジェクトを取得し、関数 callback() を呼び出せるようにしたいです。 </p>
<p>page.evaluate() を使用しましたが、うまくいきませんでした</p>
この目標 (ブラウザ コンソールからオブジェクトを取得する) を達成するには、私の Puppeteer ラッパー ライブラリ https://github.com/wix-incubator/bubanai/pulls を使用できます。
new を使用します。 ConsoleDriver(context).getMessages()
メソッドを実行し、受信したオブジェクトを配列から JSON... に変換します。または、ConsoleDriver コードをプロジェクトにコピーするだけです。
######参照する### ###使用例