diff --git a/lib/Page.js b/lib/Page.js index 67a074097ad..50c5fc19ad9 100644 --- a/lib/Page.js +++ b/lib/Page.js @@ -260,7 +260,10 @@ class Page extends EventEmitter { } await result; helper.removeEventListeners([listener]); - return responses.get(this.mainFrame().url()); + let response = responses.get(this.mainFrame().url()); + if (!response) + throw new Error('Failed to navigate: ' + url); + return response; } /** diff --git a/test/test.js b/test/test.js index 3a0580edbaa..a3563bcd9c7 100644 --- a/test/test.js +++ b/test/test.js @@ -461,6 +461,15 @@ describe('Puppeteer', function() { } expect(error.message).toContain('SSL Certificate error'); })); + it('should fail when main resources failed to load', SX(async function() { + let error = null; + try { + await page.navigate('chrome-devtools://devtools/bundled/inspector.html'); + } catch (e) { + error = e; + } + expect(error.message).toContain('Failed to navigate'); + })); it('should fail when exceeding maximum navigation timeout', SX(async function() { let error = null; // Hang for request to the empty.html