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
-
.b ⇒ Object
define browser value.
-
.browser_full_screen ⇒ Object
makes the browser full screen.
-
.browser_version ⇒ Object
Check browser version.
-
.check_save_screenshot(full_sc_dirname, screen_shot) ⇒ Object
create screenshot filename and save the screenshot if the test has failed or if explictly required.
-
.chrome ⇒ Object
chrome browser details.
-
.chrome_headless ⇒ Object
chrome headless browser details.
-
.firefox ⇒ Object
firefox browser details.
-
.firefox_headless ⇒ Object
firefox headless browser details.
-
.ie ⇒ Object
ie browser details.
-
.open_browser ⇒ Object
open_browser function.
-
.safari ⇒ Object
sarfari headless browser details.
Class Method Details
.b ⇒ Object
define browser value
103 104 105 |
# File 'lib/utils/browser.rb', line 103 def self.b browser = @browser end |
.browser_full_screen ⇒ Object
makes the browser full screen.
95 96 97 98 99 100 |
# File 'lib/utils/browser.rb', line 95 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_version ⇒ Object
Check browser version
108 109 110 111 112 |
# File 'lib/utils/browser.rb', line 108 def self.browser_version browserversion = @browser.driver.capabilities[:version] rescue StandardError browserversion = 'No Browser version' end |
.check_save_screenshot(full_sc_dirname, screen_shot) ⇒ Object
create screenshot filename and save the screenshot if the test has failed or if explictly required
116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 |
# File 'lib/utils/browser.rb', line 116 def self.check_save_screenshot(full_sc_dirname, screen_shot) if ($currentTestFail || screen_shot) time = Time.now.strftime('%H%M') if ($currentTestFail) scFileName = full_sc_dirname + "/Test_step-#{$testStep}_Failed_"\ "#{time}.png" else # file name will be teststep.png scFileName = full_sc_dirname + "/Test_step-#{$testStep}_#{time}.png" end # Screenshot capture for websites Browser.b.screenshot.save scFileName MyLog.log.info("Screenshot saved to: #{scFileName} \n") else MyLog.log.debug "No screenshot requested \n" end # if any issues with saving the screenshot then log a warning rescue StandardError => error # construct the error message from custom text and the actual system # error message (converted to a string). MyLog.log.warn("Error saving the screenshot: #{scFileName} #{error.to_s}") end |
.chrome ⇒ Object
chrome browser details
39 40 41 42 43 44 |
# File 'lib/utils/browser.rb', line 39 def self.chrome @browser = Watir::Browser.new :chrome, switches: %w[ --acceptInsecureCerts-true --start-maximized --window-size=1920,1080 ] browser_version end |
.chrome_headless ⇒ Object
chrome headless browser details
47 48 49 50 51 52 53 |
# File 'lib/utils/browser.rb', line 47 def self.chrome_headless @browser = Watir::Browser.new :chrome, switches: %w[ --start-maximized --disable-gpu --headless --acceptInsecureCerts-true --no-sandbox --window-size=1920,1080 ] browser_version end |
.firefox ⇒ Object
firefox browser details
56 57 58 59 60 61 62 63 |
# File 'lib/utils/browser.rb', line 56 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 browser_version end |
.firefox_headless ⇒ Object
firefox headless browser details
66 67 68 69 70 71 72 73 74 75 76 77 78 |
# File 'lib/utils/browser.rb', line 66 def self.firefox_headless caps = Selenium::WebDriver::Remote::Capabilities.firefox = Selenium::WebDriver::Firefox::Options.new(args: ['-headless']) caps['acceptInsecureCerts'] = true driver = Selenium::WebDriver.for(:firefox, 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) browser_version # browser end |
.ie ⇒ Object
ie browser details
81 82 83 84 85 |
# File 'lib/utils/browser.rb', line 81 def self.ie @browser = Watir::Browser.new :ie browser_full_screen browser_version end |
.open_browser ⇒ Object
open_browser function
11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
# File 'lib/utils/browser.rb', line 11 def self.open_browser lc_browser_type = $browserType.downcase case lc_browser_type when 'chrome' chrome when 'chrome-headless' chrome_headless when 'firefox' firefox when 'firefox-headless' firefox_headless when 'ie' ie when 'safari' safari else MyLog.log.error "unable to open selected browser: #{lc_browser_type}" raise BrowserFailedOpen end rescue BrowserFailedOpen => error # 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} " + error.to_s raise error_text end |
.safari ⇒ Object
sarfari headless browser details
88 89 90 91 92 |
# File 'lib/utils/browser.rb', line 88 def self.safari @browser = Watir::Browser.new :safari browser_full_screen browser_version end |