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

Returns a new instance of WebDriverListener.



18
19
20
21
# File 'lib/browsermob/proxy/webdriver_listener.rb', line 18

def initialize(client)
  @client = client
  @hars = []
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



46
47
48
49
# File 'lib/browsermob/proxy/webdriver_listener.rb', line 46

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

#before_navigate_back(driver = nil) ⇒ Object



32
33
34
35
36
37
# File 'lib/browsermob/proxy/webdriver_listener.rb', line 32

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



39
40
41
42
43
44
# File 'lib/browsermob/proxy/webdriver_listener.rb', line 39

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



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

def before_navigate_to(url, driver)
  save_har unless @hars.empty? # first request
  @client.new_har("navigate-to-#{url}")
end

#before_quit(driver) ⇒ Object



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

def before_quit(driver)
  save_har
end

#resetObject



23
24
25
# File 'lib/browsermob/proxy/webdriver_listener.rb', line 23

def reset
  @hars.clear
end