私の Puppeteer スクリプトでは、ページをロードする前にファイル JS を使用して実行します。
const preloadFile = fs.readFileSync('./file.js', 'utf8'); const id = await page.evaluateOnNewDocument(preloadFile);
file.js には次のものが含まれます:
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)
このスクリプトは、オブジェクト (Action、Cdata、Callback...) をブラウザのコンソールに出力します
puppeter 側からこのオブジェクトを取得し、関数 callback() を呼び出せるようにしたいです。
page.evaluate() を使用しましたが、うまくいきませんでした
この目標 (ブラウザ コンソールからオブジェクトを取得する) を達成するには、私の Puppeteer ラッパー ライブラリhttps://github.com/wix-incubator/bubanai/pullsを使用できます。
new を使用します。 ConsoleDriver(context).getMessages()
メソッドを実行し、受信したオブジェクトを配列から JSON... に変換します。または、ConsoleDriver コードをプロジェクトにコピーするだけです。
######参照する### ###使用例