class BrowserMob::Proxy::WebDriverListener

WebDriver event listener that assumes the following:

driver.get - new HAR driver.click - new page driver.navigate.back - new page driver.navigate.forward - new page

Attributes

hars[R]

Public Class Methods

new(client, opts = {}) click to toggle source
# File lib/browsermob/proxy/webdriver_listener.rb, line 18
def initialize(client, opts = {})
  @client = client
  @hars = []

  @new_har_opts = {}
  @new_har_opts[:capture_headers] = true if opts[:capture_headers]
  @new_har_opts[:capture_content] = true if opts[:capture_content]
  @new_har_opts[:capture_binary_content] = true if opts[:capture_binary_content]
end

Public Instance Methods

before_click(element, driver) click to toggle source
# File lib/browsermob/proxy/webdriver_listener.rb, line 51
def before_click(element, driver)
  name = "click-element-#{identifier_for element}"
  @client.new_page name
end
before_navigate_back(driver = nil) click to toggle source
# File lib/browsermob/proxy/webdriver_listener.rb, line 37
def before_navigate_back(driver = nil)
  name = "navigate-back"
  name << "-from-#{driver.current_url}" if driver

  @client.new_page name
end
before_navigate_forward(driver = nil) click to toggle source
# File lib/browsermob/proxy/webdriver_listener.rb, line 44
def before_navigate_forward(driver = nil)
  name = "navigate-forward"
  name << "-from-#{driver.current_url}" if driver

  @client.new_page name
end
before_navigate_to(url, driver) click to toggle source
# File lib/browsermob/proxy/webdriver_listener.rb, line 32
def before_navigate_to(url, driver)
  save_har unless @hars.empty? # first request
  @client.new_har("navigate-to-#{url}", @new_har_opts)
end
before_quit(driver) click to toggle source
# File lib/browsermob/proxy/webdriver_listener.rb, line 56
def before_quit(driver)
  save_har
end
reset() click to toggle source
# File lib/browsermob/proxy/webdriver_listener.rb, line 28
def reset
  @hars.clear
end

Private Instance Methods

identifier_for(element) click to toggle source
# File lib/browsermob/proxy/webdriver_listener.rb, line 66
def identifier_for(element)
  # can be ovverriden to provide more meaningful info
  element.ref
end
save_har() click to toggle source
# File lib/browsermob/proxy/webdriver_listener.rb, line 62
def save_har
  @hars << @client.har
end