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