lib/puppeteer/page.rb in puppeteer-ruby-0.0.19 vs lib/puppeteer/page.rb in puppeteer-ruby-0.0.20
- old
+ new
@@ -99,11 +99,13 @@
@client.on_event 'Page.loadEventFired' do |event|
emit_event 'Events.Page.Load'
end
# client.on('Runtime.consoleAPICalled', event => this._onConsoleAPI(event));
# client.on('Runtime.bindingCalled', event => this._onBindingCalled(event));
- # client.on('Page.javascriptDialogOpening', event => this._onDialog(event));
+ @client.on_event 'Page.javascriptDialogOpening' do |event|
+ handle_dialog_opening(event)
+ end
# client.on('Runtime.exceptionThrown', exception => this._handleException(exception.exceptionDetails));
# client.on('Inspector.targetCrashed', event => this._onTargetCrashed());
# client.on('Performance.metrics', event => this._emitMetrics(event));
@client.on_event 'Log.entryAdded' do |event|
handle_log_entry_added(event)
@@ -127,11 +129,11 @@
end
EVENT_MAPPINGS = {
close: 'Events.Page.Close',
# console: 'Events.Page.Console',
- # dialog: 'Events.Page.Dialog',
+ dialog: 'Events.Page.Dialog',
domcontentloaded: 'Events.Page.DOMContentLoaded',
# error:
frameattached: 'Events.Page.FrameAttached',
framedetached: 'Events.Page.FrameDetached',
framenavigated: 'Events.Page.FrameNavigated',
@@ -630,23 +632,20 @@
# } : {};
# const message = new ConsoleMessage(type, textTokens.join(' '), args, location);
# this.emit(Events.Page.Console, message);
# }
- # _onDialog(event) {
- # let dialogType = null;
- # if (event.type === 'alert')
- # dialogType = Dialog.Type.Alert;
- # else if (event.type === 'confirm')
- # dialogType = Dialog.Type.Confirm;
- # else if (event.type === 'prompt')
- # dialogType = Dialog.Type.Prompt;
- # else if (event.type === 'beforeunload')
- # dialogType = Dialog.Type.BeforeUnload;
- # assert(dialogType, 'Unknown javascript dialog type: ' + event.type);
- # const dialog = new Dialog(this._client, dialogType, event.message, event.defaultPrompt);
- # this.emit(Events.Page.Dialog, dialog);
- # }
+ private def handle_dialog_opening(event)
+ dialog_type = event['type']
+ unless %w(alert confirm prompt beforeunload).include?(dialog_type)
+ raise ArgumentError.new("Unknown javascript dialog type: #{dialog_type}")
+ end
+ dialog = Puppeteer::Dialog.new(@client,
+ type: dialog_type,
+ message: event['message'],
+ default_value: event['defaultPrompt'])
+ emit_event('Events.Page.Dialog', dialog)
+ end
# @return [String]
def url
main_frame.url
end