Эй, Дэниел Штернлихт, хорошая статья, но закончилось гибридным подходом. Делюсь ссылкой https://stackoverflow.com/questions/52573105/set-width-and-height-of-element-screenshot-in-puppeteer/56383338#56383338

но затем я изменил html2canvas, потому что у html2canvas есть некоторые проблемы с некоторыми правилами CSS и значками, поэтому я закончил использовать только Puppeteer и сделал снимок экрана с элементом, используя element.screenshot() вместо page.screenshot(), потому что, если вы используете element.screenshot() Puppeteer знает границы и автоматически обрезает только эту область. пример:

let element = await page.$(`#some id`);

await element.screenshot({путь: «некоторые/путь»});

и это :)