我正在使用puppeteer捕获setInterval中的屏幕截图,我已经设置了视口,但是每个间隔视口都在跳跃,我希望 稳定的看法。
这是我的代码:
try {
console.log('getting browser');
const browser = await puppeteer.launch({ headless: true, slowMo: 100, args: ['--no-sandbox', '--disable-setuid-sandbox', '--single-process']});
console.log('opening new page');
page = await browser.newPage();
console.log('page opened');
await page.setViewport({ width: 1413, height: 749 });
console.log('viewport set');
await page.setUserAgent(config.USER_AGENT);
console.log('userAgent set');
await page.goto(msg.data.url, {timeout: 0, waitUntil: ['domcontentloaded']});
console.log('succesfully connected to ', msg.data.url);
let uniqueShot;
let newShot = await page.screenshot({encoding: 'base64'});
shotInterval = setInterval(async function () {
let newShot = await page.screenshot({encoding: 'base64'});
if (newShot !== uniqueShot) {
uniqueShot = newShot;
ws.send(JSON.stringify({title: 'SCREENSHOT', data: uniqueShot}));
}
}, 1000);
} catch (e) {
console.log(e);
}
因此,仅在page.screenshot()采取措施时才会更改。我正在检查base64编码的字符串是否与最后一个字符串相同,并且永远不会相同。
最终结果,我的意思是屏幕截图是整页的,没关系,但是视口确实在跳跃,所以我无法执行其他操作。
是否可以将视口和屏幕截图视口设置为相同?
我该如何解决?