傀儡廻电子"/>
文件和窗口没有定义 傀儡廻电子
我遇到了一个问题,我在我的电子应用程序的后端使用puppeteer运行一个自动的chrome会话,但我一直得到错误的文档未定义。下面是代码。
const isDone = await this.page.evaluate(async () => await this.autoScroll);
...
async autoScroll() {
return new Promise(resolve => {
const timer = setInterval(() => {
document.scrollingElement.scrollBy(0, 100);
if (document.scrollingElement.scrollTop + window.innerHeight >= document.scrollingElement.scrollHeight) {
clearInterval(timer);
resolve(true);
}
}, 230);
});
}
如果我在不同的文件夹中单独运行这段代码,它的工作和执行都很完美, 但不知何故,当我在应用程序中运行它时,它似乎出错了。
欢迎任何帮助。
谢谢。
回答如下:我是用babel来转换我的代码的。Puppeteer page.evaluation调用autoScroll.toString(),当与babel一起使用时,会导致一个不完整的字符串。而用babel却可以。
const isDone = await this.page.evaluate(`(async() => {
return new Promise(resolve => {
const timer = setInterval(() => {
document.scrollingElement.scrollBy(0, 100);
if (document.scrollingElement.scrollTop + window.innerHeight >= document.scrollingElement.scrollHeight) {
clearInterval(timer);
resolve(true);
}
}, 230);
});
})()`);
只要把它放在一个字符串中,这样就不会出现任何toString的问题。
更多推荐
文件和窗口没有定义 傀儡廻电子
发布评论