Кукловод - Ошибка протокола (Page.captureScreenshot): цель закрывается, когда я пытаюсь сделать снимок экрана

Я запускаю этот пример кода:

async takeScreenshot() {  
        console.log('trying take Screenshot [...]');
        let image = this.page.screenshot({fullPage: true, type: 'jpeg'});
        timeout(image, 30000)
        .then((thing) => console.log("screenshot successfull!"))
        .catch((err) => {
            if(err instanceof TimeoutError) {
                console.log(err);
                image = null;
            }
        })

        console.log('Completed!');
        return image;
    }

Я получаю следующий вывод ошибки:

0 | эра-мони | Ошибка: ошибка протокола (Page.captureScreenshot): цель закрыта. 0 | эра-мони | в Session._onClosed (/home/ubuntu/project/ra-monitors/era-monitor-browser/node_modules/puppeteer/lib/Connection.js:209:23) 0 | era-moni | в Connection._onClose (/home/ubuntu/project/ra-monitors/era-monitor-browser/node_modules/puppeteer/lib/Connection.js:116:15) 0 | era-moni | в emitTwo (events.js: 106: 13) 0 | era-moni | в WebSocket.emit (events.js: 194: 7) 0 | era-moni | в WebSocket.emitClose (/home/ubuntu/project/ra-monitors/era-monitor-browser/node_modules/ws/lib/WebSocket.js:213:10) 0 | era-moni | в _receiver.cleanup (/home/ubuntu/project/ra-monitors/era-monitor-browser/node_modules/ws/lib/WebSocket.js:195:41) 0 | era-moni | в Receiver.cleanup (/home/ubuntu/project/ra-monitors/era-monitor-browser/node_modules/ws/lib/Receiver.js:520:15) 0 | era-moni | в WebSocket.finalize (/home/ubuntu/project/ra-monitors/era-monitor-browser/node_modules/ws/lib/WebSocket.js:195:22) 0 | era-moni | в emitNone (events.js: 91: 20) 0 | era-moni | в Socket.emit (events.js: 188: 7)


person Kauê Castro    schedule 14.11.2017    source источник
comment
Обычно это происходит, когда вы не используете puppeteer с версией Chrome, с которой он был выпущен.   -  person sjaustirni    schedule 15.12.2017


Ответы (1)


Перед page.screenshot(), потому что функция асинхронная:

let image = await this.page.screenshot({
  fullPage: true,
  type: 'jpeg',
});
person Grant Miller    schedule 23.07.2018