Я использую кукловодов для захвата скриншотов в 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 с последней, и никогда не бывает одинаковой.
Окончательный результат, я имею в виду, что скриншот - это полная страница, это нормально, но область просмотра буквально скачет, поэтому я не могу выполнять другие действия.
Есть ли способ установить область просмотраи окно просмотра скриншота должно быть одинаковым?
Как это исправить?