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
25
26
# 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

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



51
52
53
54
# 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) ⇒ Object



37
38
39
40
41
42
# 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) ⇒ Object



44
45
46
47
48
49
# 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) ⇒ Object



32
33
34
35
# 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) ⇒ Object



56
57
58
# File 'lib/browsermob/proxy/webdriver_listener.rb', line 56

def before_quit(driver)
  save_har
end

#resetObject



28
29
30
# File 'lib/browsermob/proxy/webdriver_listener.rb', line 28

def reset
  @hars.clear
end