首页 > 解决方案 > 傀儡师黑色截图

问题描述

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

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

有没有办法解决这个问题?

标签: javascriptnode.jspuppeteer

解决方案


对我来说,您的代码片段按预期工作(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()

推荐阅读