Module: Browser

Defined in:
lib/utils/browser.rb

Overview

Created on 02 Aug 2018 @author: Andy Perrett

Versions: 1.0 - Baseline

browser_setup.rb - a browser functions

Class Method Summary collapse

Class Method Details

.bObject

define browser value



82
83
84
# File 'lib/utils/browser.rb', line 82

def self.b
  @browser
end

.browser_full_screenObject

makes the browser full screen.



74
75
76
77
78
79
# File 'lib/utils/browser.rb', line 74

def self.browser_full_screen
  screen_width = @browser.execute_script('return screen.width;')
  screen_height = @browser.execute_script('return screen.height;')
  @browser.driver.manage.window.resize_to(screen_width, screen_height)
  @browser.driver.manage.window.move_to(0, 0)
end

.browser_versionObject

Check browser version



87
88
89
90
91
92
93
94
95
96
97
# File 'lib/utils/browser.rb', line 87

def self.browser_version
  browser_name = CMDLine.browser_type.downcase
  case browser_name
  when 'chrome', 'chrome-headless'
    @browser.driver.capabilities[:version]
  when 'firefox', 'firefox-headless'
    @browser.execute_script('return navigator.userAgent;').split('/')[-1]
  end
rescue StandardError
  'No Browser version'
end

.chromeObject

chrome browser details



37
38
39
40
41
# File 'lib/utils/browser.rb', line 37

def self.chrome
  @browser = Watir::Browser.new :chrome, switches: %w[
    --acceptInsecureCerts-true --start-maximized --window-size=1920,1080
  ]
end

.chrome_headlessObject

chrome headless browser details



44
45
46
47
48
49
# File 'lib/utils/browser.rb', line 44

def self.chrome_headless
  @browser = Watir::Browser.new :chrome, switches: %w[
    --start-maximized --disable-gpu --headless --acceptInsecureCerts-true
    --no-sandbox --window-size=1920,1080
  ]
end

.firefoxObject

firefox browser details



52
53
54
55
56
57
58
# File 'lib/utils/browser.rb', line 52

def self.firefox
  caps = Selenium::WebDriver::Remote::Capabilities.firefox
  caps['acceptInsecureCerts'] = true
  driver = Selenium::WebDriver.for(:firefox, desired_capabilities: caps)
  @browser = Watir::Browser.new(driver)
  browser_full_screen
end

.firefox_headlessObject

firefox headless browser details



61
62
63
64
65
66
67
68
69
70
71
# File 'lib/utils/browser.rb', line 61

def self.firefox_headless
  caps = Selenium::WebDriver::Remote::Capabilities.firefox
  options = Selenium::WebDriver::Firefox::Options.new(args: ['-headless'])
  caps['acceptInsecureCerts'] = true
  driver = Selenium::WebDriver.for(:firefox, options: options,
                                             desired_capabilities: caps)
  @browser = Watir::Browser.new(driver)
  # makes the browser full screen.
  @browser.driver.manage.window.resize_to(1920, 1200)
  @browser.driver.manage.window.move_to(0, 0)
end

.open_browserObject

open_browser function



13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# File 'lib/utils/browser.rb', line 13

def self.open_browser
  lc_browser_type = CMDLine.browser_type.downcase
  case lc_browser_type
  when 'chrome'
    chrome
  when 'chrome-headless'
    chrome_headless
  when 'firefox'
    firefox
  when 'firefox-headless'
    firefox_headless
  else
    MyLog.log.error "unable to open selected browser: #{lc_browser_type}"
    raise BrowserFailedOpen
  end
rescue BrowserFailedOpen => e
  # construct the error message from custom text and the actual system error
  # message (converted to a string)
  error_text = 'Unable to open'\
                "the requested browser: #{lc_browser_type} " + e.to_s
  raise error_text
end