class TestCentricity::Browsers
Public Class Methods
browser_size(browser, orientation)
click to toggle source
# File lib/testcentricity_web/browser_helper.rb, line 147 def self.browser_size(browser, orientation) device = get_device(browser) if device width = device[:css_width] height = device[:css_height] default_orientation = device[:default_orientation].to_sym if orientation Environ.device_orientation = orientation size = if orientation.downcase.to_sym == default_orientation [width, height] else [height, width] end 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_web/browser_helper.rb, line 76 def self.close_all_browser_instances Capybara.page.driver.browser.window_handles.each do |handle| Capybara.page.driver.browser.switch_to.window(handle) Capybara.page.driver.browser.close end end
close_current_browser_instance()
click to toggle source
# File lib/testcentricity_web/browser_helper.rb, line 87 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_web/browser_helper.rb, line 98 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_web/browser_helper.rb, line 92 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
maximize_browser()
click to toggle source
Maximizes the selenium browser window.
@example
Browsers.maximize_browser
# File lib/testcentricity_web/browser_helper.rb, line 28 def self.maximize_browser window = Capybara.current_session.driver.browser.manage.window window.maximize end
mobile_device_agent(browser)
click to toggle source
# File lib/testcentricity_web/browser_helper.rb, line 131 def self.mobile_device_agent(browser) device = get_device(browser) agent_string = device[:user_agent] raise "Device '#{device}' is not defined" unless agent_string agent_string end
mobile_device_name(browser)
click to toggle source
# File lib/testcentricity_web/browser_helper.rb, line 138 def self.mobile_device_name(browser) device = get_device(browser) name = device[:name] raise "Device '#{device}' is not defined" unless name Environ.device_os = device[:os] Environ.device_type = device[:type] name end
num_browser_instances()
click to toggle source
# File lib/testcentricity_web/browser_helper.rb, line 83 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_web/browser_helper.rb, line 50 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_web/browser_helper.rb, line 40 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_web/browser_helper.rb, line 16 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_web/browser_helper.rb, line 123 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_web/browser_helper.rb, line 104 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_web/browser_helper.rb, line 108 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_web/browser_helper.rb, line 72 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_device(device)
click to toggle source
# File lib/testcentricity_web/browser_helper.rb, line 172 def self.get_device(device) if @devices.blank? @devices = YAML.load_file File.expand_path('../../devices/devices.yml', __FILE__) # read in user defined list of devices external_device_file = 'config/data/devices/devices.yml' unless File.size?(external_device_file).nil? ext_devices = YAML.load_file(external_device_file) @devices = @devices.merge(ext_devices) end end @devices[device.gsub(/\s+/, '').downcase.to_sym] end