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

时间:2018-08-22 05:20:51

标签: google-chrome puppeteer headless

我正在尝试使用无头式屏幕快照Chrome SSL错误页面,如下所示: Chrome SSL error

此Puppeteer代码在等待screenshot()时挂起,但可用于非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,但这完全绕开了错误页面。

1 个答案:

答案 0 :(得分:0)

目前似乎无法在Chrome / Chromium中捕获插页式广告的屏幕截图。

Josh's link解释了为什么会更深入的原因,但是简短的答案是,像我上面的屏幕截图一样,SSL错误就像一个特殊的叠加层,实际上不是页面的一部分。由于实际页面尚未完成渲染,因此尝试挂起屏幕快照会挂起。