当我使用x
,y
,width
和height
参数制作屏幕截图时,puppeteer将返回黑色屏幕截图,但一切正常。
这是我的代码:
await page.screenshot({ path: 'build.png', clip: { x: 0, y: 0, width: 810, height: 415 } });
有什么办法可以解决这个问题?
答案 0 :(得分:1)
对我来说,您的代码段可以按预期运行(Windows 10,puppeteer 3.1.0)。这可能是与环境或网页相关的问题(例如,docs say对于OSX屏幕截图至少需要1/6秒的时间)。
要解决此问题,您可以使用page.setViewport
裁剪所需的尺寸,然后制作普通的屏幕截图。
图像build.png
和build2.png
与我100%相同(大小,裁剪,所有内容),因此,如果您唯一的问题是clip
,则可以继续使用此解决方案
const puppeteer = require('puppeteer')
async function fn() {
const browser = await puppeteer.launch()
const page = await browser.newPage()
await page.setViewport({ width: 810, height: 415 })
await page.goto('https://www.google.com')
await page.screenshot({ path: 'build.png', clip: { x: 0, y: 0, width: 810, height: 415 } }) // your original try
await page.screenshot({ path: 'build2.png' }) // workaround, combined with setViewport
await browser.close()
}
fn()