При использовании сайта захвата кукловод с ошибкой создания веб-пакета: браузер не загружен, на ChromeLauncher.launch (webpack-internal) - PullRequest
0 голосов
/ 29 апреля 2020

Я пытаюсь сделать снимок экрана, предоставив html файл для node js. Я использовал пакет capture-website. Вот код:

try{
await captureWebsite.file('file.html', 'file.png', {overwrite: true}, function (error) {
                    if (error) {
                       console.log('error',error);
                    }
                });
}catch(e){
console.log('error in capture image:',  e)
}

Версия: узел: 12.16.1 capture-website: "0.8.1" Angular: 7

1 Ответ

0 голосов
/ 29 апреля 2020

Вы можете сделать что-то вроде:

    async function screenshotFromHtml ({ html, timeout = 2000 }: ScreenshotOptions) {
        const browser = await puppeteer.launch({
          headless: !process.env.DEBUG_HEADFULL,
          args: [
            '--no-sandbox',
            '--disable-setuid-sandbox',
          ]
        })

        const page = await browser.newPage()

        // Set viewport to something big
        // Prevents Carbon from cutting off lines
        await page.setViewport({
          width: 2560,
          height: 1080,
          deviceScaleFactor: 2
        })

        page.setContent(html)

        const base64 = await page.screenshot({ encoding: "base64" }) as string;

        // Wait some more as `waitUntil: 'load'` or `waitUntil: 'networkidle0'
        await page.waitFor(timeout)
        // Close browser
        await browser.close()

        return base64
    }

Этот код напечатан на машинописном тексте, но вы можете использовать тело функции в вашем JS проекте

В этом файле github Вы также можете увидеть html код рендеринга

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...