class SimpleSauce::Session
Attributes
access_key[W]
data_center[R]
driver[R]
options[R]
url[W]
username[W]
Public Class Methods
new(options = nil)
click to toggle source
# File lib/simple_sauce/session.rb, line 11 def initialize(options = nil) @options = options || Options.new raise unless [Array, Options].include?(@options.class) self.data_center = :US_WEST @username = ENV['SAUCE_USERNAME'] @access_key = ENV['SAUCE_ACCESS_KEY'] end
Public Instance Methods
data_center=(data_center)
click to toggle source
# File lib/simple_sauce/session.rb, line 29 def data_center=(data_center) @data_center = data_center @dc_url = case data_center when :US_WEST 'ondemand.saucelabs.com:443/wd/hub' when :US_EAST 'us-east-1.saucelabs.com:443/wd/hub' when :EU_VDC 'ondemand.eu-central-1.saucelabs.com:443/wd/hub' else msg = "#{data_center} is an invalid data center; specify :US_WEST, :US_EAST or :EU_VDC" raise ::ArgumentError, msg end SauceWhisk.data_center = @data_center end
start()
click to toggle source
# File lib/simple_sauce/session.rb, line 20 def start @driver = Selenium::WebDriver.for :remote, url: url, desired_capabilities: options.capabilities end
stop(result)
click to toggle source
# File lib/simple_sauce/session.rb, line 24 def stop(result) SauceWhisk::Jobs.change_status(@driver.session_id, result) @driver.quit end
to_selenium()
click to toggle source
# File lib/simple_sauce/session.rb, line 54 def to_selenium {url: url, desired_capabilities: Array(@options).map(&:as_json).inject(:merge)} end
url()
click to toggle source
# File lib/simple_sauce/session.rb, line 45 def url raise ArgumentError, "No user name was set; use `ENV['SAUCE_USERNAME']` or `Session#username=`" unless @username unless @access_key raise ArgumentError, "No access key was set; use `ENV['SAUCE_ACCESS_KEY']` or `Session#access_key=`" end @url ||= "https://#{@username}:#{@access_key}@#{@dc_url}" end