[英]How can I use page.type() inside page.evaluate() in puppeteer?
[英]How can I use page inside of my page.evaluate?
在这种适用于 puppeteer 的方法中,我想使用page
,但我不知道如何在 Promise 中获取它。
async scrollList( page ) {
let results = await page.evaluate( async () => {
results = await new Promise( async resolve => {
// next line fails :-(
await page.mouse.move( 100, 100 );
// do other stuff
return resolve( results );
});
});
console.log('Got results: ', results);
}
我怎样才能做到这一点? 现在我收到一个错误,说page
未定义。
问题
由于两个运行时(Node.js 和浏览器)是分开的,因此您无法访问页面。 page
object 只能从 Node.js 运行时访问。
解决方案
您必须公开一个可以访问page
object 的 function 才能通过page.exposeFunction执行此操作:
await page.exposeFunction('moveMouse', async (x, y) => {
// page is accessible here
await page.mouse.move(x, y);
});
您可以在 page.evaluate 中使用page.evaluate
通过调用window.moveMouse(100, 100)
进行评估。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.