Top Level Namespace
Defined Under Namespace
Modules: Crossbrowsify, Selenium
Classes: CrossBrowsifyTasks
Instance Method Summary
collapse
Instance Method Details
#remote_browser? ⇒ Boolean
3
4
5
|
# File 'lib/crossbrowsify/browser_setup.rb', line 3
def remote_browser?
ENV.has_key? 'BROWSER_TASK_NAME'
end
|
#setup_remote_browser ⇒ Object
7
8
9
10
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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
|
# 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"
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']})... "
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
capabilities['browserstack.local'] = true
if ENV['CIRCLECI']
capabilities['browserstack.localIdentifier'] = "#{ENV['CIRCLE_PROJECT_REPONAME']}-node-#{ENV['CIRCLE_NODE_INDEX']}"
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']
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
Capybara.default_driver = driver_name
Capybara.current_driver = driver_name
Capybara.javascript_driver = driver_name
puts "Driver: #{Capybara.default_driver}"
end
|