Почему viewport изменяется на page.screenshot ()?(Кукольник) - PullRequest
0 голосов
/ 22 февраля 2019

Я использую кукловодов для захвата скриншотов в 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 с последней, и никогда не бывает одинаковой.

Окончательный результат, я имею в виду, что скриншот - это полная страница, это нормально, но область просмотра буквально скачет, поэтому я не могу выполнять другие действия.

Есть ли способ установить область просмотраи окно просмотра скриншота должно быть одинаковым?

Как это исправить?

...