提问者:小点点

木偶师balck截图


当我使用xywidthheight参数制作屏幕截图时,puppeteer返回一个黑色的屏幕截图,没有它一切正常。 这是我的代码:

await page.screenshot({path: 'build.png',clip:{x:0,y:0,width: 810, height:415}});

有什么办法可以解决吗?


共1个答案

匿名用户

对我来说,您的代码片段与预期一样工作(Windows 10,puppeteer 3.1.0)。 它可能是环境或网页相关的问题(例如,文档说OSX截图至少需要1/6秒)。

作为一种解决方法,您可以使用page.setViewport裁剪所需的大小,然后执行普通的屏幕截图。

图像build.pngbuild2.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()