diff --git a/lib/Page.js b/lib/Page.js index e528af2a5fe..00974e11ddd 100644 --- a/lib/Page.js +++ b/lib/Page.js @@ -260,7 +260,11 @@ class Page extends EventEmitter { var interstitialPromise = new Promise(fulfill => this._client.once('Security.certificateError', fulfill)).then(() => false); var referrer = this._extraHeaders.referer; // Await for the command to throw exception in case of illegal arguments. - await this._client.send('Page.navigate', {url, referrer}); + try { + await this._client.send('Page.navigate', {url, referrer}); + } catch (e) { + return false; + } return await Promise.race([loadPromise, interstitialPromise]); } diff --git a/test/test.js b/test/test.js index ef4cbf8df11..283906fa87d 100644 --- a/test/test.js +++ b/test/test.js @@ -40,6 +40,17 @@ describe('Puppeteer', function() { expect(msgs).toEqual(['Message!']); })); + describe('Page.navigate', function() { + it('should fail when navigating to bad url', SX(async function() { + var success = await page.navigate('asdfasdf'); + expect(success).toBe(false); + })); + it('should succeed when navigating to good url', SX(async function() { + var success = await page.navigate(EMPTY_PAGE); + expect(success).toBe(true); + })); + }); + describe('Page.setInPageCallback', function() { it('should work', SX(async function() { await page.setInPageCallback('callController', function(a, b) {