module TestCentricity::Browsers

Public Class Methods

browser_size(browser, orientation) click to toggle source
# File lib/testcentricity/browser_helper.rb, line 146
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].to_sym
    if orientation
      Environ.device_orientation = orientation
      orientation.downcase.to_sym == default_orientation ?
          size = [width, height] :
          size = [height, width]
    else
      Environ.device_orientation = device[:default_orientation]
      size = [width, height]
    end
  else
    size = [1650, 1000]
  end
  size
end
close_all_browser_instances() click to toggle source
# File lib/testcentricity/browser_helper.rb, line 73
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_instance() click to toggle source
# File lib/testcentricity/browser_helper.rb, line 84
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) click to toggle source
# File lib/testcentricity/browser_helper.rb, line 95
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_instance() click to toggle source
# File lib/testcentricity/browser_helper.rb, line 89
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_cookies() click to toggle source
# File lib/testcentricity/browser_helper.rb, line 109
def self.delete_all_cookies
  if Capybara.current_driver == :selenium
    browser = Capybara.current_session.driver.browser
    if browser.respond_to?(:manage) && browser.manage.respond_to?(:delete_all_cookies)
      browser.manage.delete_all_cookies
    else
      raise 'Could not clear cookies.'
    end
  end
end
maximize_browser() click to toggle source

Maximizes the selenium browser window.

@example

Browsers.maximize_browser
# File lib/testcentricity/browser_helper.rb, line 26
def self.maximize_browser
  window = Capybara.current_session.driver.browser.manage.window
  window.maximize
end
mobile_device_agent(device) click to toggle source
# File lib/testcentricity/browser_helper.rb, line 128
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
mobile_device_name(device) click to toggle source
# File lib/testcentricity/browser_helper.rb, line 136
def self.mobile_device_name(device)
  device_name = device.gsub(/\s+/, '').downcase.to_sym
  device = get_devices[device_name]
  name = device[:name]
  raise "Device '#{device}' is not defined" unless name
  Environ.device_os = device[:os]
  Environ.device_type = device[:type]
  name
end
navigate_back() click to toggle source

Emulates clicking the web browser's Back button. Navigates back by one page on the browser’s history.

@example

Browsers.navigate_back
navigate_forward() click to toggle source

Emulates clicking the web browser's Forward button. Navigates forward by one page on the browser’s history.

@example

Browsers.navigate_forward
num_browser_instances() click to toggle source
# File lib/testcentricity/browser_helper.rb, line 80
def self.num_browser_instances
  Capybara.page.driver.browser.window_handles.count
end
refresh_browser() click to toggle source

Refreshes the selenium browser.

@example

Browsers.refresh_browser
# File lib/testcentricity/browser_helper.rb, line 47
def self.refresh_browser
  Capybara.page.driver.browser.navigate.refresh
end
set_browser_window_position(x, y) click to toggle source

Sets the position of the browser window.

@param x [Integer] the desired x coordinate @param y [Integer] the desired y coordinate @example

Browsers.set_browser_window_position([100, 300])
# File lib/testcentricity/browser_helper.rb, line 37
def self.set_browser_window_position(x, y)
  window = Capybara.current_session.driver.browser.manage.window
  window.move_to(x, y)
end
set_browser_window_size(resolution) click to toggle source

Sets the size of the browser window.

@param resolution [Array] the desired [width, height] @example

Browsers.set_browser_window_size([1024, 768])
# File lib/testcentricity/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])
  Environ.browser_size = [resolution[0].to_i, resolution[1].to_i]
end
set_device_orientation(orientation) click to toggle source
# File lib/testcentricity/browser_helper.rb, line 120
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
suppress_js_alerts() click to toggle source
# File lib/testcentricity/browser_helper.rb, line 101
def self.suppress_js_alerts
  Capybara.page.execute_script('window.alert = function() {}')
end
suppress_js_leave_page_modal() click to toggle source
# File lib/testcentricity/browser_helper.rb, line 105
def self.suppress_js_leave_page_modal
  Capybara.page.execute_script('window.onbeforeunload = null')
end
switch_to_new_browser_instance() click to toggle source
# File lib/testcentricity/browser_helper.rb, line 69
def self.switch_to_new_browser_instance
  Capybara.page.driver.browser.switch_to.window(Capybara.page.driver.browser.window_handles.last)
end

Private Class Methods

get_devices() click to toggle source
# File lib/testcentricity/browser_helper.rb, line 170
def self.get_devices
  YAML.load_file File.expand_path('../../devices/devices.yml', __FILE__)
end