class Selenium::WebDriver::BiDi::LogHandler

Constants

ConsoleLogEntry
JavaScriptLogEntry

Public Class Methods

new(bidi) click to toggle source
# File lib/selenium/webdriver/bidi/log_handler.rb, line 27
def initialize(bidi)
  @bidi = bidi
  @log_entry_subscribed = false
end

Public Instance Methods

add_message_handler(type) { |log_entry_klass(**params)| ... } click to toggle source

@return [int] id of the handler steep:ignore:start

# File lib/selenium/webdriver/bidi/log_handler.rb, line 34
def add_message_handler(type)
  subscribe_log_entry unless @log_entry_subscribed
  @bidi.add_callback('log.entryAdded') do |params|
    if params['type'] == type
      log_entry_klass = type == 'console' ? ConsoleLogEntry : JavaScriptLogEntry
      yield(log_entry_klass.new(**params))
    end
  end
end
remove_message_handler(id) click to toggle source

@param [int] id of the handler previously added

# File lib/selenium/webdriver/bidi/log_handler.rb, line 46
def remove_message_handler(id)
  @bidi.remove_callback('log.entryAdded', id)
  unsubscribe_log_entry if @log_entry_subscribed && @bidi.callbacks['log.entryAdded'].empty?
end

Private Instance Methods

subscribe_log_entry() click to toggle source
# File lib/selenium/webdriver/bidi/log_handler.rb, line 53
def subscribe_log_entry
  @bidi.session.subscribe('log.entryAdded')
  @log_entry_subscribed = true
end
unsubscribe_log_entry() click to toggle source
# File lib/selenium/webdriver/bidi/log_handler.rb, line 58
def unsubscribe_log_entry
  @bidi.session.unsubscribe('log.entryAdded')
  @log_entry_subscribed = false
end