Class: BrowserMob::Proxy::WebDriverListener

Inherits:
Selenium::WebDriver::Support::AbstractEventListener
  • Object
show all
Defined in:
lib/browsermob/proxy/webdriver_listener.rb

Overview

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

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(client, opts = {}) ⇒ WebDriverListener

Returns a new instance of WebDriverListener.



18
19
20
21
22
23
24
# 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]
end

Instance Attribute Details

#harsObject (readonly)

Returns the value of attribute hars.



16
17
18
# File 'lib/browsermob/proxy/webdriver_listener.rb', line 16

def hars
  @hars
end

Instance Method Details

#before_click(element, driver) ⇒ Object



49
50
51
52
# File 'lib/browsermob/proxy/webdriver_listener.rb', line 49

def before_click(element, driver)
  name = "click-element-#{identifier_for element}"
  @client.new_page name
end

#before_navigate_back(driver = nil) ⇒ Object



35
36
37
38
39
40
# File 'lib/browsermob/proxy/webdriver_listener.rb', line 35

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) ⇒ Object



42
43
44
45
46
47
# File 'lib/browsermob/proxy/webdriver_listener.rb', line 42

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) ⇒ Object



30
31
32
33
# File 'lib/browsermob/proxy/webdriver_listener.rb', line 30

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) ⇒ Object



54
55
56
# File 'lib/browsermob/proxy/webdriver_listener.rb', line 54

def before_quit(driver)
  save_har
end

#resetObject



26
27
28
# File 'lib/browsermob/proxy/webdriver_listener.rb', line 26

def reset
  @hars.clear
end