Module: TestCentricity::Browsers

Includes:
Capybara::DSL
Defined in:
lib/testcentricity_web/browser_helper.rb

Class Method Summary collapse

Class Method Details

.browser_size(browser, orientation) ⇒ Object



94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
# File 'lib/testcentricity_web/browser_helper.rb', line 94

def self.browser_size(browser, orientation)
  device_name = browser.gsub(/\s+/, "").downcase.to_sym
  device = get_devices[device_name]
  if device
    width = device[:css_width]
    height = device[:css_height]
    default_orientation = device[:default_orientation]
    if orientation
      (orientation.downcase.to_sym == default_orientation) ?
          size = [width, height] :
          size = [height, width]
    else
      size = [width, height]
    end
  else
    size = [1650, 1000]
  end
  size
end

.close_all_browser_instancesObject



43
44
45
46
47
48
# File 'lib/testcentricity_web/browser_helper.rb', line 43

def self.close_all_browser_instances
  Capybara.page.driver.browser.window_handles.each do |handle|
    page.driver.browser.switch_to.window(handle)
    page.driver.browser.close
  end
end

.close_current_browser_instanceObject



50
51
52
53
# File 'lib/testcentricity_web/browser_helper.rb', line 50

def self.close_current_browser_instance
  Capybara.page.driver.browser.close
  Capybara.page.driver.browser.switch_to.window(Capybara.page.driver.browser.window_handles.last)
end

.close_named_browser_instance(name) ⇒ Object



61
62
63
64
65
# File 'lib/testcentricity_web/browser_helper.rb', line 61

def self.close_named_browser_instance(name)
  Capybara.page.driver.browser.switch_to.window(Capybara.page.driver.find_window(name))
  Capybara.page.driver.browser.close
  Capybara.page.driver.browser.switch_to.window(Capybara.page.driver.browser.window_handles.last)
end

.close_old_browser_instanceObject



55
56
57
58
59
# File 'lib/testcentricity_web/browser_helper.rb', line 55

def self.close_old_browser_instance
  Capybara.page.driver.browser.switch_to.window(Capybara.page.driver.browser.window_handles.first)
  Capybara.page.driver.browser.close
  Capybara.page.driver.browser.switch_to.window(Capybara.page.driver.browser.window_handles.last)
end

.delete_all_cookiesObject



67
68
69
70
71
72
73
74
75
76
# File 'lib/testcentricity_web/browser_helper.rb', line 67

def self.delete_all_cookies
  if Capybara.current_driver == :selenium
    browser = Capybara.current_session.driver.browser
    if browser.respond_to?(:manage) and browser.manage.respond_to?(:delete_all_cookies)
      browser.manage.delete_all_cookies
    else
      raise 'Could not clear cookies.'
    end
  end
end

.maximize_browserObject

Maximizes the selenium browser window.

Examples:

Browsers.maximize_browser


25
26
27
28
# File 'lib/testcentricity_web/browser_helper.rb', line 25

def self.maximize_browser
  window = Capybara.current_session.driver.browser.manage.window
  window.maximize
end

.mobile_device_agent(device) ⇒ Object



86
87
88
89
90
91
92
# File 'lib/testcentricity_web/browser_helper.rb', line 86

def self.mobile_device_agent(device)
  device_name = device.gsub(/\s+/, "").downcase.to_sym
  device = get_devices[device_name]
  agent_string = device[:user_agent]
  raise "Device '#{device}' is not defined" unless agent_string
  agent_string
end

.refresh_browserObject

Refreshes the selenium browser.

Examples:

Browsers.refresh_browser


35
36
37
# File 'lib/testcentricity_web/browser_helper.rb', line 35

def self.refresh_browser
  Capybara.page.driver.browser.navigate.refresh
end

.set_browser_window_size(resolution) ⇒ Object

Sets the size of the browser window.

Examples:

Browsers.set_browser_window_size([1024, 768])

Parameters:

  • resolution (Array)

    the desired [width, height]



14
15
16
17
18
# File 'lib/testcentricity_web/browser_helper.rb', line 14

def self.set_browser_window_size(resolution)
  resolution = resolution.split(',') if resolution.is_a?(String)
  window = Capybara.current_session.driver.browser.manage.window
  window.resize_to(resolution[0], resolution[1])
end

.set_device_orientation(orientation) ⇒ Object



78
79
80
81
82
83
84
# File 'lib/testcentricity_web/browser_helper.rb', line 78

def self.set_device_orientation(orientation)
  if Environ.is_mobile? && !Environ.is_device?
    Browsers.set_browser_window_size(Browsers.browser_size(Environ.browser.to_s, orientation))
  else
    puts '***** Cannot change device orientation of desktop web browsers or remote devices *****'
  end
end

.switch_to_new_browser_instanceObject



39
40
41
# File 'lib/testcentricity_web/browser_helper.rb', line 39

def self.switch_to_new_browser_instance
  Capybara.page.driver.browser.switch_to.window(Capybara.page.driver.browser.window_handles.last)
end