page.content
вернет только HTML-представление DOM.Чтобы получить реальное изображение холста внутри DOM, вы можете использовать функцию toDataURL
.Это вернет изображение, отображаемое в строке в кодировке base64.
Пример кода
const dataUrl = await page.evaluate(() => {
const canvas = document.querySelector("#canvas-selector");
return canvas.toDataURL();
});
// dataUrl looks like this: "data:image/png;base64,iVBORw..."
const base64String = dataUrl.substr(dataUrl.indexOf(',') + 1); // get everything after the comma
const imgBuffer = Buffer.from(base64String, 'base64'); //
fs.writeFileSync('image.png', imgBuffer);
Вызов evaluate
вернет буфер, закодированный в base64изображение.Вы должны сначала удалить "data:...,"
из этого, а затем вы можете поместить это в буфер.Затем буфер может быть сохранен (или обработан любым другим способом).