Документ и окно не определены Puppeteer Electron - PullRequest
0 голосов
/ 28 мая 2020

У меня проблема, когда я запускаю автоматизированный сеанс chrome с использованием кукловода в задней части моего электронного приложения, но я продолжаю получать сообщение об ошибке undefined. Вот код:

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);
        });
    }

Код работает и отлично работает, если я запускаю его самостоятельно в другой папке, но почему-то кажется, что при запуске в приложении возникает ошибка.

Любая помощь приветствуется.

Спасибо.

1 Ответ

0 голосов
/ 28 мая 2020

Я преобразовывал свой код с помощью babel. Puppeteer page.evaluate вызывает autoScroll.toString (), что приводит к неполной строке при использовании с 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.

...