在我的 Puppeteer 脚本中,我使用文件 JS 在加载页面之前执行:
const preloadFile = fs.readFileSync('./file.js', 'utf8');
const id = await page.evaluateOnNewDocument(preloadFile);
file.js 包含:
const i = setInterval(()=>{
if (window.turnstile) {
clearInterval(i)
window.turnstile.render = (a,b) => {
b.userAgent = navigator.userAgent
window.tsCallback = b.callback
window.action = b.action
window.data = b.cData
console.log(b)
return 'foo'
}
}
},50)
此脚本在浏览器控制台上打印一个对象(操作、Cdata、回调...)
我想从pupetter端获取这个对象并能够调用函数callback()。
我使用了 page.evaluate(),但对我不起作用
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
您可以使用我的 Puppeteer 包装库 https://github.com/wix-incubator/ bubanai/pulls 来实现这个目标(从浏览器控制台获取对象),使用
new ConsoleDriver(context).getMessages()方法,然后将接收到的对象从数组转换为 JSON...或者只是将 ConsoleDriver 代码复制到您的项目中。
参考
使用示例