我正在尝试使用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
,但这完全绕过了错误页面。
1条答案
按热度按时间2nbm6dog1#
看起来目前没有办法在Chrome/Chromium中捕获间隙的屏幕截图。
Josh's link更深入地解释了原因,但简短的答案是,像我上面的截图这样的SSL错误就像一个特殊的覆盖层,而不是页面的一部分。尝试截图挂起,因为实际页面尚未完成渲染。