Support Page.{Alert,Confirm,Prompt,BeforeUnload} events

This patch adds Page events to fire when javascript dialogs
get opened.
This commit is contained in:
Andrey Lushnikov
2017-05-13 13:44:24 -07:00
parent de9605a8b0
commit bdf895bed6
2 changed files with 57 additions and 9 deletions

View File

@@ -60,7 +60,7 @@ class Page extends EventEmitter {
client.on('Network.responseReceived', event => this.emit(Page.Events.ResponseReceived, event.response));
client.on('Network.loadingFailed', event => this.emit(Page.Events.ResourceLoadingFailed, event));
client.on('Runtime.consoleAPICalled', event => this._onConsoleAPI(event));
client.on('Page.javascriptDialogOpening', dialog => this.emit(Page.Events.Dialog, dialog));
client.on('Page.javascriptDialogOpening', event => this._onDialog(event));
client.on('Runtime.exceptionThrown', exception => this._handleException(exception.exceptionDetails));
}
@@ -207,6 +207,20 @@ class Page extends EventEmitter {
this.emit(Page.Events.ConsoleMessage, values.join(' '));
}
_onDialog(event) {
var eventType = null;
if (event.type === 'alert')
eventType = Page.Events.Alert;
else if (event.type === 'confirm')
eventType = Page.Events.Confirm;
else if (event.type === 'prompt')
eventType = Page.Events.Prompt;
else if (event.type === 'beforeunload')
eventType = Page.Events.BeforeUnload;
if (eventType)
this.emit(eventType, event.message);
}
/**
* @param {boolean} accept
* @param {string} promptText
@@ -416,9 +430,12 @@ Page.ScreenshotTypes = {
};
Page.Events = {
Alert: 'alert',
BeforeUnload: 'beforeunload',
Confirm: 'confirm',
ConsoleMessage: 'consolemessage',
Dialog: 'dialog',
Exception: 'exception',
Prompt: 'prompt',
ResourceLoadingFailed: 'resourceloadingfailed',
ResponseReceived: 'responsereceived',
};