class Selenium::WebDriver::BiDi::LogInspector
Constants
- EVENTS
- LOG_LEVEL
Public Class Methods
new(driver, browsing_context_ids = nil)
click to toggle source
# File lib/selenium/webdriver/bidi/log_inspector.rb, line 43 def initialize(driver, browsing_context_ids = nil) unless driver.capabilities.web_socket_url raise Error::WebDriverError, 'WebDriver instance must support BiDi protocol' end @bidi = driver.bidi @bidi.session.subscribe('log.entryAdded', browsing_context_ids) end
Public Instance Methods
on_console_entry(filter_by = nil, &block)
click to toggle source
# File lib/selenium/webdriver/bidi/log_inspector.rb, line 53 def on_console_entry(filter_by = nil, &block) check_valid_filter(filter_by) on_log do |params| type = params['type'] console_log_events(params, filter_by, &block) if type.eql?('console') end end
on_javascript_exception(&block)
click to toggle source
# File lib/selenium/webdriver/bidi/log_inspector.rb, line 71 def on_javascript_exception(&block) on_log do |params| type = params['type'] javascript_log_events(params, FilterBy.log_level('error'), &block) if type.eql?('javascript') end end
on_javascript_log(filter_by = nil, &block)
click to toggle source
# File lib/selenium/webdriver/bidi/log_inspector.rb, line 62 def on_javascript_log(filter_by = nil, &block) check_valid_filter(filter_by) on_log do |params| type = params['type'] javascript_log_events(params, filter_by, &block) if type.eql?('javascript') end end
on_log(filter_by = nil) { |params| ... }
click to toggle source
# File lib/selenium/webdriver/bidi/log_inspector.rb, line 78 def on_log(filter_by = nil, &block) unless filter_by.nil? check_valid_filter(filter_by) on(:entry_added) do |params| yield(params) if params['level'] == filter_by.level end return end on(:entry_added, &block) end
Private Instance Methods
check_valid_filter(filter_by)
click to toggle source
# File lib/selenium/webdriver/bidi/log_inspector.rb, line 98 def check_valid_filter(filter_by) return if filter_by.nil? || filter_by.instance_of?(FilterBy) raise "Pass valid FilterBy object. Received: #{filter_by.inspect}" end
console_log_events(params, filter_by) { |event| ... }
click to toggle source
# File lib/selenium/webdriver/bidi/log_inspector.rb, line 104 def console_log_events(params, filter_by) event = ConsoleLogEntry.new( level: params['level'], text: params['text'], timestamp: params['timestamp'], type: params['type'], method: params['method'], realm: params['realm'], args: params['args'], stack_trace: params['stackTrace'] ) unless filter_by.nil? yield(event) if params['level'] == filter_by.level return end yield(event) end
javascript_log_events(params, filter_by) { |event| ... }
click to toggle source
# File lib/selenium/webdriver/bidi/log_inspector.rb, line 124 def javascript_log_events(params, filter_by) event = JavascriptLogEntry.new( level: params['level'], text: params['text'], timestamp: params['timestamp'], type: params['type'], stack_trace: params['stackTrace'] ) unless filter_by.nil? yield(event) if params['level'] == filter_by.level return end yield(event) end
on(event, &block)
click to toggle source
# File lib/selenium/webdriver/bidi/log_inspector.rb, line 93 def on(event, &block) event = EVENTS[event] if event.is_a?(Symbol) @bidi.callbacks["log.#{event}"] << block end