Javascript 使用Puppeter注入脚本,使功能可从网页中使用

Javascript 使用Puppeter注入脚本,使功能可从网页中使用,javascript,puppeteer,Javascript,Puppeteer,我正在使用Puppeter加载一个网页,其中包含我想要录制的画布,使用CCapture.js 我尝试过各种方法,但不管怎样,我都无法让录音机在一个页面中成功启动。请评估,在CCapture未定义的情况下出现各种错误 我试过在顶部使用require 我尝试过使用addScriptTag 我已经尝试使用readFileSync来包含它 我还尝试从page.evaluate返回捕获对象并调用I const puppeteer = require('puppeteer'); const fs = req

我正在使用Puppeter加载一个网页,其中包含我想要录制的画布,使用CCapture.js

我尝试过各种方法,但不管怎样,我都无法让录音机在一个页面中成功启动。请评估,在CCapture未定义的情况下出现各种错误

我试过在顶部使用require 我尝试过使用addScriptTag 我已经尝试使用readFileSync来包含它 我还尝试从page.evaluate返回捕获对象并调用I

const puppeteer = require('puppeteer');
const fs = require('fs');
const config = require('./login.json');
// const cc = require('./build/CCapture.all.min.js')

// const cc = require('./build/CCapture.all.min.js')

(async () => {
    function delay(time) {
      return new Promise(function(resolve) {
        setTimeout(resolve, time)
      });
    }
    try {

        const cookiesString = fs.readFileSync('./cookies.json', 'utf8');
        const cookies = JSON.parse(cookiesString);
        const browser = await puppeteer.launch({
            args: ["--no-sandbox"]
        });
        const page = await browser.newPage();
        await page.setViewport({width: 1920, height: 1080});
        await page.setCookie.apply(page, cookies);
        await page.goto(config.testurl);
        console.log(page.url());
        //wait for canvas to load
        await delay(1000);

        // try this later?
        // await page.exposeFunction('CCapture', canvas =>
        //     cc.capture('canvas'))

        // await page.addScriptTag({path: './build/CCapture.all.min.js'})
        await page.addScriptTag({path: './src/webm-writer-0.2.0.js'})
        await page.addScriptTag({path: './src/download.js'})
        await page.addScriptTag({ path: './src/tar.js' })
        // await page.addScriptTag({ path: './src/CCapture.js' })

        const cc = fs.readFileSync('./build/CCapture.all.min.js', 'utf8')
        await page.evaluateOnNewDocument(cc)

        var canvas = await page.evaluate(() => {
            let canvas = document.getElementById('mainCanvas');
            return canvas;
        });
        console.log(canvas);

        var capturer = await page.evaluate(() => {
            var capturer = new CCapture({
                format: 'png',
                framerate: 2,
                name: 'test',
                verbose: true,
                timeLimit: 10,
                autoSaveTime: 2

            })
            return capturer

        })
        await page.close();
        await browser.close();
    } catch(e){
        console.log(e)
    }
})();