class Object
Public Instance Methods
remote_browser?()
click to toggle source
# File lib/crossbrowsify/browser_setup.rb, line 3 def remote_browser? ENV.has_key? 'BROWSER_TASK_NAME' end
setup_remote_browser()
click to toggle source
# File lib/crossbrowsify/browser_setup.rb, line 7 def setup_remote_browser raise 'Please ensure you supply ENV variables BS_USERNAME and BS_AUTHKEY from browser stack' if !ENV['BS_USERNAME'] || !ENV['BS_AUTHKEY'] url = "http://#{ENV['BS_USERNAME']}:#{ENV['BS_AUTHKEY']}@hub.browserstack.com/wd/hub" # load browser configuration browser_data = JSON.load(open('browsers.json')) browser_name = ENV['BROWSER_TASK_NAME'] browser = browser_data[browser_name] puts "Testing in #{browser['human']} (#{ENV['BROWSER_TASK_NAME']})... " # translate into Selenium Capabilities capabilities = Selenium::WebDriver::Remote::Capabilities.new capabilities["os"] = browser["os"] capabilities["browser"] = browser["browser"] if browser["browser_version"] capabilities["browser_version"] = browser["browser_version"] capabilities["os_version"] = browser["os_version"] end if browser["device"] capabilities["device"] = browser["device"] capabilities[:javascript_enabled] = true end capabilities['browserstack.debug'] = true unless ENV['BS_LOCAL'] =~ /false/i capabilities['browserstack.local'] = true if ENV['CIRCLECI'] capabilities['browserstack.localIdentifier'] = "#{ENV['CIRCLE_PROJECT_REPONAME']}-node-#{ENV['CIRCLE_NODE_INDEX']}" end end capabilities['takesScreenshot'] = true capabilities['project'] = ENV['CIRCLE_PROJECT_REPONAME'] if ENV['CIRCLE_PROJECT_REPONAME'] capabilities['build'] = ENV['CIRCLE_BUILD_NUM'] if ENV['CIRCLE_BUILD_NUM'] # register a driver driver_name = "#{browser['browser']}_#{browser['browser_version']}_#{browser['os']}_#{browser['os_version']}" driver = Capybara.register_driver(driver_name) do |app| Capybara::Selenium::Driver.new(app, :browser => :remote, :url => url, :desired_capabilities => capabilities) end # use the registered driver Capybara.default_driver = driver_name Capybara.current_driver = driver_name Capybara.javascript_driver = driver_name puts "Driver: #{Capybara.default_driver}" end