木偶黑色截图

时间:2020-06-06 12:50:37

标签: javascript node.js puppeteer

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

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

有什么办法可以解决这个问题?

1 个答案:

答案 0 :(得分:1)

对我来说,您的代码段可以按预期运行(Windows 10,puppeteer 3.1.0)。这可能是与环境或网页相关的问题(例如,docs say对于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()