屏幕截图Chrome SSL错误页面通过无头模式

7cjasjjr  于 2023-05-04  发布在  Go
关注(0)|答案(1)|浏览(124)

我正在尝试使用headless截图Chrome SSL错误页面,如下所示:

这段Puppeteer代码挂起等待屏幕截图(),但适用于非SSL错误页面:

const puppeteer = require('puppeteer');

(async () => {
  const browser = await puppeteer.launch({headless: false});
  const page = await browser.newPage();
  const client = await page.target().createCDPSession()
  // await client.send('Security.setIgnoreCertificateErrors', {ignore: true}) 
  try {
    await page.goto('https://neverssl.com', {
    waitUntil: 'networkidle2',
    timeout: 1000});
    await page.screenshot({path: 'success.png'});
  }
  catch (ex) {
    console.log("ERROR", ex)
    await page.screenshot({path: 'error.png'});
  }
  await browser.close();
})();

我还尝试设置Security.setIgnoreCertificateErrors,但这完全绕过了错误页面。

2nbm6dog

2nbm6dog1#

看起来目前没有办法在Chrome/Chromium中捕获间隙的屏幕截图。

Josh's link更深入地解释了原因,但简短的答案是,像我上面的截图这样的SSL错误就像一个特殊的覆盖层,而不是页面的一部分。尝试截图挂起,因为实际页面尚未完成渲染。

相关问题