browsenator 1.4.0 → 1.5.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA256:
3
- metadata.gz: 4b3d8fd2c56ffda62a456e2b9bcddc1e975542e370622e8e2c0c6c4b5499ffbf
4
- data.tar.gz: 1892e627e83501c7981e1e0b11ce9173cefaee0f90094ec9763ba37ea96dea24
2
+ SHA1:
3
+ metadata.gz: 7f112d645e581531801f8aac581a0970aee0e8d0
4
+ data.tar.gz: d13b32cf5fc05fb7cb6ca4d59c30c7ffd1d33577
5
5
  SHA512:
6
- metadata.gz: 578110817205d91a8f82d58b5aa2d1962f85961d7fc7e71f137a9a5565f1dfe5126d9334bb11ea1f6ef4d2f76df6184517bc5f6e160e733ae269bb2dd56920c0
7
- data.tar.gz: a369b08d205f0192bcc6db957a6ed22e21eead53e01d4d1a89f3b0f23fea08af1a4c48961527e1bda87e256d884a33fc6924e16573f63e84a1f85506ff273b0a
6
+ metadata.gz: 60b5f6beca27810d98a9eec972286eec33bcc29cf30fbe82790f921a56d9b277ad8b248dc15580816c784115b7605d6f13958071608f41ba9a02eb8a6091b638
7
+ data.tar.gz: 0262b959e18d67766a8b595b77e224c84221930079605fa76f5fd0b757a7eb076b87a90b5c3c867447ba0d25b4cb3f7b7e3119685969486b85f8e77dc83b9095
data/README.md CHANGED
@@ -1,7 +1,7 @@
1
1
  # Browsenator
2
- [![Build Status](https://travis-ci.org/aidamanna/browsenator.svg?branch=master)](https://travis-ci.org/aidamanna/browsenator)
2
+ [![Build Status](https://travis-ci.org/aidamanna/browsenator.svg?branch=master)](https://travis-ci.org/aidamanna/browsenator) [![Maintainability](https://api.codeclimate.com/v1/badges/51b5246ff4911fe235f7/maintainability)](https://codeclimate.com/github/aidamanna/browsenator/maintainability) [![Test Coverage](https://api.codeclimate.com/v1/badges/51b5246ff4911fe235f7/test_coverage)](https://codeclimate.com/github/aidamanna/browsenator/test_coverage)
3
3
 
4
- Browsenator is a Watir wrapper to make starting local and remote browsers easier.
4
+ Browsenator is a Watir wrapper to make starting local and remote browsers easier in desktop and mobile platforms.
5
5
 
6
6
  Big thanks to Browserstack for allowing us to use their tool for developing this project.
7
7
 
@@ -67,17 +67,21 @@ In Safari, you will also need to allow remote automation option (under Develop m
67
67
 
68
68
  ### Remote browser
69
69
 
70
- Start a remote browser:
70
+ Currently, remote browsers are only available through Browserstack. You will need to have a subscription with Browserstack to connect with them. Bear in mind that the [plan](https://www.browserstack.com/accounts/subscriptions) you need is different depending on the platform (desktop, mobile) you need to perform your tests.
71
+
72
+ You can start remote browsers on desktop and **real** mobile platforms.
73
+
74
+ #### Remote desktop browser
75
+
76
+ Start a remote desktop browser:
71
77
 
72
78
  ```ruby
73
79
  Browsenator.for(:chrome, remote: :browserstack)
74
80
  ```
75
81
 
76
- Currently, remote browsers are only available through Browserstack.
82
+ You can start the following remote desktop browsers: `:chrome`, `:safari`, `:edge`, `:ie`.
77
83
 
78
- You can start the following remote browsers: `:chrome`, `:safari`, `:edge`, `:ie`.
79
-
80
- #### Browser versions
84
+ ##### Browser versions
81
85
 
82
86
  You can specify the browser version you want to use:
83
87
 
@@ -87,7 +91,7 @@ Browsenator.for(:chrome, remote: :browserstack, browser_version: '65.0')
87
91
 
88
92
  Check [capabilities](https://www.browserstack.com/automate/capabilities) in Browserstack to know which browser versions to use.
89
93
 
90
- #### Defaults
94
+ ##### Defaults
91
95
 
92
96
  - Resolution: 1024 x 768
93
97
  - Chrome browser: v66 - High Sierra
@@ -95,9 +99,9 @@ Check [capabilities](https://www.browserstack.com/automate/capabilities) in Brow
95
99
  - Edge browser: v17 - Windows 10
96
100
  - IE browser: v11 - Windows 10
97
101
 
98
- #### Other configurations
102
+ ##### Other configurations
99
103
 
100
- ##### Screen resolution
104
+ ###### Screen resolution
101
105
 
102
106
  Specify the screen resolution for the machine in browserstack using the options `screen_width` and `screen_height`
103
107
 
@@ -107,7 +111,7 @@ Browsenator.for(:chrome, remote: :browserstack, screen_width: 1920, screen_heigh
107
111
 
108
112
  You can find resolutions [here](https://www.browserstack.com/automate/capabilities)
109
113
 
110
- ##### Project name
114
+ ###### Project name
111
115
 
112
116
  Specify project name in Browserstack execution:
113
117
 
@@ -115,7 +119,7 @@ Specify project name in Browserstack execution:
115
119
  Browsenator.for(:chrome, remote: :browserstack, project: 'Functional Test')
116
120
  ```
117
121
 
118
- ##### Local testing
122
+ ###### Local testing
119
123
 
120
124
  By default local testing is set to false. You can enable it by setting `local_testing` to `true`:
121
125
 
@@ -123,7 +127,13 @@ By default local testing is set to false. You can enable it by setting `local_te
123
127
  Browsenator.for(:chrome, remote: :browserstack, local_testing: true)
124
128
  ```
125
129
 
126
- Note: This property will only set the correct capability so that local testing is enabled. However, to make it work, you still need to setup your [Local Testing connection](https://www.browserstack.com/local-testing) with Browserstack.
130
+ Additionally, you can specify an identifier for your local testing connection:
131
+
132
+ ```ruby
133
+ Browsenator.for(:chrome, remote: :browserstack, local_testing: true, local_identifier: 'aCRtDu')
134
+ ```
135
+
136
+ Note: `local_testing` property will only set the correct capability so that local testing is enabled. However, to make it work, you still need to setup your [Local Testing connection](https://www.browserstack.com/local-testing) with Browserstack.
127
137
 
128
138
  See the following example for a Linux machine.
129
139
 
@@ -131,13 +141,47 @@ First of all, download the linux binary and start your local testing connection:
131
141
 
132
142
  $ wget https://www.browserstack.com/browserstack-local/BrowserStackLocal-linux-x64.zip
133
143
  $ unzip BrowserStackLocal-linux-x64.zip
134
- $ ./BrowserStackLocal --key $BROWSERSTACK_ACCESS_KEY & sleep 5
144
+ $ ./BrowserStackLocal --key $BROWSERSTACK_ACCESS_KEY
145
+
146
+ If using an identifier, remember to provide it when starting your connection:
147
+
148
+ $ ./BrowserStackLocal --key $BROWSERSTACK_ACCESS_KEY --local-identifier aCRtDu
135
149
 
136
150
  Run your tests. When you are done running your tests, stop your local testing connection (and remove the downloaded binary):
137
151
 
138
152
  $ killall BrowserStackLocal
139
153
  $ rm -f BrowserStackLocal*
140
154
 
155
+ #### Remote real mobile browser
156
+
157
+ It connects to real mobile devices, not emulators.
158
+
159
+ For starting a remote browser in a mobile device, you only need to specify the device. If you specify a iOS device it will start Safari browser, and if you specify an Android device it will start a Chrome/Native browser (this is an Appium restriction).
160
+
161
+ ```ruby
162
+ Browsenator.for(:samsung_galaxy_s8, remote: :browserstack)
163
+ ```
164
+
165
+ You can start the following remote **real** mobile browsers: `:samsung_galaxy_s8`, `:iphone8`.
166
+
167
+ ##### Device orientation
168
+
169
+ By default the device orientation is portrait. If you want to test in landscape mode you can specify so:
170
+
171
+ ```ruby
172
+ Browsenator.for(:samsung_galaxy_s8, remote: :browserstack, device_orientation: 'landscape')
173
+ ```
174
+
175
+ ##### Defaults
176
+
177
+ - Orientation: Portrait
178
+ - Samsung Galaxy S8: Android 7.0
179
+ - iPhone 8: iOS 11.0
180
+
181
+ ##### Other configurations
182
+
183
+ You can specify the project name and enable local testing, the same way it's done with desktop browsers.
184
+
141
185
  ## Development
142
186
 
143
187
  After checking out the repo, run `bin/setup` to install dependencies. Then, run `bundle exec spec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
@@ -146,9 +190,9 @@ The code follows [Ruby Style Guidelines](https://github.com/bbatsov/ruby-style-g
146
190
 
147
191
  Code coverage is automatically generated when rspec is run. A full report can be viewed by opening coverage/index.html (target is > 90%).
148
192
 
149
- ### Adding more remote Browserstack browsers
193
+ ### Adding more remote Browserstack desktop/mobile browsers
150
194
 
151
- Go to Browserstack [capabilities section for Ruby](https://www.browserstack.com/automate/ruby#configure-capabilities) and select the operating system and browser you would like to add.
195
+ Go to Browserstack [capabilities section for Ruby](https://www.browserstack.com/automate/ruby#configure-capabilities) and select the operating system and browser you would like to add for a desktop browser, or the device and operating system for a mobile browser.
152
196
  Use the capabilities Browserstack provides to start the new browser.
153
197
 
154
198
  ### Testing
@@ -1,16 +1,17 @@
1
+ require 'watir'
1
2
  require 'webdrivers'
2
3
  require_relative 'browsenator/local'
3
4
  require_relative 'browsenator/remote/browserstack'
4
5
 
5
6
  module Browsenator
6
- def self.for(browser, opts = {})
7
+ def self.for(platform, opts = {})
7
8
  remote = opts.delete(:remote)
8
9
 
9
10
  case remote
10
11
  when false, nil
11
- Local.for(browser, opts)
12
+ Local.for(platform, opts)
12
13
  when :browserstack
13
- Remote::Browserstack.for(browser, opts)
14
+ Remote::Browserstack.for(platform, opts)
14
15
  else
15
16
  raise ArgumentError, "Unknown remote: #{remote.inspect}"
16
17
  end
@@ -4,8 +4,8 @@ require_relative 'local/safari'
4
4
 
5
5
  module Browsenator
6
6
  module Local
7
- def self.for(browser, opts = {})
8
- case browser
7
+ def self.for(platform, opts = {})
8
+ case platform
9
9
  when :chrome
10
10
  Chrome.new(opts).open
11
11
  when :firefox
@@ -13,7 +13,7 @@ module Browsenator
13
13
  when :safari
14
14
  Safari.new.open
15
15
  else
16
- raise ArgumentError, "Unknown local browser: #{browser.inspect}"
16
+ raise ArgumentError, "Unknown local platform: #{platform.inspect}"
17
17
  end
18
18
  end
19
19
  end
@@ -1,4 +1,3 @@
1
- require 'watir'
2
1
  require_relative 'window_size'
3
2
 
4
3
  module Browsenator
@@ -1,4 +1,3 @@
1
- require 'watir'
2
1
  require_relative 'window_size'
3
2
 
4
3
  module Browsenator
@@ -1,4 +1,3 @@
1
- require 'watir'
2
1
  require_relative 'window_size'
3
2
 
4
3
  module Browsenator
@@ -1,24 +1,49 @@
1
- require_relative 'browserstack/chrome'
2
- require_relative 'browserstack/safari'
3
- require_relative 'browserstack/edge'
4
- require_relative 'browserstack/ie'
1
+ require_relative 'browserstack/browserstack_credentials'
2
+ require_relative 'browserstack/desktop/chrome'
3
+ require_relative 'browserstack/desktop/safari'
4
+ require_relative 'browserstack/desktop/edge'
5
+ require_relative 'browserstack/desktop/ie'
6
+ require_relative 'browserstack/mobile/samsung_galaxy_s8'
7
+ require_relative 'browserstack/mobile/iphone8'
5
8
 
6
9
  module Browsenator
7
10
  module Remote
8
- module Browserstack
9
- def self.for(browser, opts = {})
10
- case browser
11
- when :chrome
12
- Chrome.new(opts).open
13
- when :safari
14
- Safari.new(opts).open
15
- when :edge
16
- Edge.new(opts).open
17
- when :ie
18
- IE.new(opts).open
19
- else
20
- raise ArgumentError, "Unknown Browserstack browser: #{browser.inspect}"
11
+ class Browserstack
12
+ include BrowserstackCredentials
13
+
14
+ class << self
15
+ def for(platform, opts = {})
16
+ return platform_class[platform].new(opts).open if platform_class.key?(platform)
17
+ raise ArgumentError, "Unknown Browserstack platform: #{platform.inspect}"
21
18
  end
19
+
20
+ private
21
+
22
+ def platform_class
23
+ {
24
+ chrome: Desktop::Chrome,
25
+ safari: Desktop::Safari,
26
+ edge: Desktop::Edge,
27
+ ie: Desktop::IE,
28
+ samsung_galaxy_s8: Mobile::SamsungGalaxyS8,
29
+ iphone8: Mobile::Iphone8
30
+ }
31
+ end
32
+ end
33
+
34
+ def open
35
+ Watir::Browser.new :remote, options
36
+ end
37
+
38
+ private
39
+
40
+ attr_reader :caps
41
+
42
+ def options
43
+ {
44
+ url: "http://#{username}:#{access_key}@hub-cloud.browserstack.com/wd/hub",
45
+ desired_capabilities: caps
46
+ }
22
47
  end
23
48
  end
24
49
  end
@@ -1,9 +1,15 @@
1
- module BrowserstackCredentials
2
- def username
3
- ENV['BROWSERSTACK_USERNAME']
4
- end
1
+ module Browsenator
2
+ module Remote
3
+ class Browserstack
4
+ module BrowserstackCredentials
5
+ def username
6
+ ENV['BROWSERSTACK_USERNAME']
7
+ end
5
8
 
6
- def access_key
7
- ENV['BROWSERSTACK_ACCESS_KEY']
9
+ def access_key
10
+ ENV['BROWSERSTACK_ACCESS_KEY']
11
+ end
12
+ end
13
+ end
8
14
  end
9
15
  end
@@ -0,0 +1,25 @@
1
+ require_relative 'screen_size'
2
+
3
+ module Browsenator
4
+ module Remote
5
+ class Browserstack
6
+ class Desktop
7
+ class Chrome < Browserstack
8
+ include ScreenSize
9
+
10
+ def initialize(opts = {})
11
+ @caps = Selenium::WebDriver::Remote::Capabilities.new
12
+ @caps['browser'] = 'Chrome'
13
+ @caps['browser_version'] = opts[:browser_version] || '66.0'
14
+ @caps['os'] = 'OS X'
15
+ @caps['os_version'] = 'High Sierra'
16
+ @caps['resolution'] = screen_resolution(opts[:screen_width], opts[:screen_height])
17
+ @caps['project'] = opts[:project]
18
+ @caps['browserstack.local'] = opts[:local_testing].to_s
19
+ @caps['browserstack.localIdentifier'] = opts[:local_identifier]
20
+ end
21
+ end
22
+ end
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,25 @@
1
+ require_relative 'screen_size'
2
+
3
+ module Browsenator
4
+ module Remote
5
+ class Browserstack
6
+ class Desktop
7
+ class Edge < Browserstack
8
+ include ScreenSize
9
+
10
+ def initialize(opts = {})
11
+ @caps = Selenium::WebDriver::Remote::Capabilities.new
12
+ @caps['browser'] = 'Edge'
13
+ @caps['browser_version'] = opts[:browser_version] || '17.0'
14
+ @caps['os'] = 'Windows'
15
+ @caps['os_version'] = '10'
16
+ @caps['resolution'] = screen_resolution(opts[:screen_width], opts[:screen_height])
17
+ @caps['project'] = opts[:project]
18
+ @caps['browserstack.local'] = opts[:local_testing].to_s
19
+ @caps['browserstack.localIdentifier'] = opts[:local_identifier]
20
+ end
21
+ end
22
+ end
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,25 @@
1
+ require_relative 'screen_size'
2
+
3
+ module Browsenator
4
+ module Remote
5
+ class Browserstack
6
+ class Desktop
7
+ class IE < Browserstack
8
+ include ScreenSize
9
+
10
+ def initialize(opts = {})
11
+ @caps = Selenium::WebDriver::Remote::Capabilities.new
12
+ @caps['browser'] = 'IE'
13
+ @caps['browser_version'] = opts[:browser_version] || '11.0'
14
+ @caps['os'] = 'Windows'
15
+ @caps['os_version'] = '10'
16
+ @caps['resolution'] = screen_resolution(opts[:screen_width], opts[:screen_height])
17
+ @caps['project'] = opts[:project]
18
+ @caps['browserstack.local'] = opts[:local_testing].to_s
19
+ @caps['browserstack.localIdentifier'] = opts[:local_identifier]
20
+ end
21
+ end
22
+ end
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,38 @@
1
+ require_relative 'screen_size'
2
+
3
+ module Browsenator
4
+ module Remote
5
+ class Browserstack
6
+ class Desktop
7
+ class Safari < Browserstack
8
+ include ScreenSize
9
+
10
+ def initialize(opts = {})
11
+ browser_version = opts[:browser_version] || '11.1'
12
+
13
+ @caps = Selenium::WebDriver::Remote::Capabilities.new
14
+ @caps['browser'] = 'Safari'
15
+ @caps['browser_version'] = browser_version
16
+ @caps['os'] = 'OS X'
17
+ @caps['os_version'] = @@os_version[browser_version]
18
+ @caps['resolution'] = screen_resolution(opts[:screen_width], opts[:screen_height])
19
+ @caps['project'] = opts[:project]
20
+ @caps['browserstack.local'] = opts[:local_testing].to_s
21
+ @caps['browserstack.localIdentifier'] = opts[:local_identifier]
22
+ end
23
+
24
+ @@os_version = {
25
+ '11.1' => 'High Sierra',
26
+ '10.1' => 'Sierra',
27
+ '9.1' => 'El Capitan',
28
+ '8.0' => 'Yosemite',
29
+ '7.1' => 'Mavericks',
30
+ '6.2' => 'Mountain Lion',
31
+ '6.0' => 'Lion',
32
+ '5.1' => 'Snow Leopard'
33
+ }
34
+ end
35
+ end
36
+ end
37
+ end
38
+ end
@@ -1,6 +1,6 @@
1
1
  module Browsenator
2
2
  module Remote
3
- module Browserstack
3
+ class Browserstack
4
4
  module ScreenSize
5
5
  def screen_resolution(width, height)
6
6
  width ||= 1024
@@ -0,0 +1,21 @@
1
+ module Browsenator
2
+ module Remote
3
+ class Browserstack
4
+ class Mobile
5
+ class Iphone8 < Browserstack
6
+ def initialize(opts = {})
7
+ @caps = Selenium::WebDriver::Remote::Capabilities.new
8
+ @caps['os_version'] = '11.0'
9
+ @caps['device'] = 'iPhone 8'
10
+ @caps['real_mobile'] = 'true'
11
+ @caps['deviceOrientation'] = opts[:device_orientation] || 'portrait'
12
+ @caps['project'] = opts[:project]
13
+ @caps['browserstack.appium_version'] = '1.7.0'
14
+ @caps['browserstack.local'] = (opts[:local_testing] || 'false').to_s
15
+ @caps['browserstack.localIdentifier'] = opts[:local_identifier]
16
+ end
17
+ end
18
+ end
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,21 @@
1
+ module Browsenator
2
+ module Remote
3
+ class Browserstack
4
+ class Mobile
5
+ class SamsungGalaxyS8 < Browserstack
6
+ def initialize(opts = {})
7
+ @caps = Selenium::WebDriver::Remote::Capabilities.new
8
+ @caps['os_version'] = '7.0'
9
+ @caps['device'] = 'Samsung Galaxy S8'
10
+ @caps['real_mobile'] = 'true'
11
+ @caps['deviceOrientation'] = opts[:device_orientation] || 'portrait'
12
+ @caps['project'] = opts[:project]
13
+ @caps['browserstack.appium_version'] = '1.7.2'
14
+ @caps['browserstack.local'] = (opts[:local_testing] || 'false').to_s
15
+ @caps['browserstack.localIdentifier'] = opts[:local_identifier]
16
+ end
17
+ end
18
+ end
19
+ end
20
+ end
21
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: browsenator
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.4.0
4
+ version: 1.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Aida Manna
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-06-08 00:00:00.000000000 Z
11
+ date: 2018-07-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: watir
@@ -138,11 +138,13 @@ files:
138
138
  - lib/browsenator/local/window_size.rb
139
139
  - lib/browsenator/remote/browserstack.rb
140
140
  - lib/browsenator/remote/browserstack/browserstack_credentials.rb
141
- - lib/browsenator/remote/browserstack/chrome.rb
142
- - lib/browsenator/remote/browserstack/edge.rb
143
- - lib/browsenator/remote/browserstack/ie.rb
144
- - lib/browsenator/remote/browserstack/safari.rb
145
- - lib/browsenator/remote/browserstack/screen_size.rb
141
+ - lib/browsenator/remote/browserstack/desktop/chrome.rb
142
+ - lib/browsenator/remote/browserstack/desktop/edge.rb
143
+ - lib/browsenator/remote/browserstack/desktop/ie.rb
144
+ - lib/browsenator/remote/browserstack/desktop/safari.rb
145
+ - lib/browsenator/remote/browserstack/desktop/screen_size.rb
146
+ - lib/browsenator/remote/browserstack/mobile/iphone8.rb
147
+ - lib/browsenator/remote/browserstack/mobile/samsung_galaxy_s8.rb
146
148
  homepage: https://github.com/aidamanna/browsenator
147
149
  licenses:
148
150
  - MIT
@@ -163,7 +165,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
163
165
  version: '0'
164
166
  requirements: []
165
167
  rubyforge_project:
166
- rubygems_version: 2.7.7
168
+ rubygems_version: 2.6.14
167
169
  signing_key:
168
170
  specification_version: 4
169
171
  summary: Easily start different browsers
@@ -1,39 +0,0 @@
1
- require 'watir'
2
- require_relative 'browserstack_credentials'
3
- require_relative 'screen_size'
4
-
5
- module Browsenator
6
- module Remote
7
- module Browserstack
8
- class Chrome
9
- include BrowserstackCredentials
10
- include ScreenSize
11
-
12
- def initialize(opts = {})
13
- caps = Selenium::WebDriver::Remote::Capabilities.new
14
- caps['browser'] = 'Chrome'
15
- caps['browser_version'] = opts[:browser_version] || '66.0'
16
- caps['os'] = 'OS X'
17
- caps['os_version'] = 'High Sierra'
18
- caps['resolution'] = screen_resolution(opts[:screen_width], opts[:screen_height])
19
- caps['project'] = opts[:project]
20
- caps['browserstack.local'] = opts[:local_testing].to_s
21
- caps['browserstack.localIdentifier'] = opts[:local_identifier]
22
-
23
- @options = {
24
- url: "http://#{username}:#{access_key}@hub-cloud.browserstack.com/wd/hub",
25
- desired_capabilities: caps
26
- }
27
- end
28
-
29
- def open
30
- Watir::Browser.new :remote, options
31
- end
32
-
33
- private
34
-
35
- attr_reader :options
36
- end
37
- end
38
- end
39
- end
@@ -1,39 +0,0 @@
1
- require 'watir'
2
- require_relative 'browserstack_credentials'
3
- require_relative 'screen_size'
4
-
5
- module Browsenator
6
- module Remote
7
- module Browserstack
8
- class Edge
9
- include BrowserstackCredentials
10
- include ScreenSize
11
-
12
- def initialize(opts = {})
13
- caps = Selenium::WebDriver::Remote::Capabilities.new
14
- caps['browser'] = 'Edge'
15
- caps['browser_version'] = opts[:browser_version] || '17.0'
16
- caps['os'] = 'Windows'
17
- caps['os_version'] = '10'
18
- caps['resolution'] = screen_resolution(opts[:screen_width], opts[:screen_height])
19
- caps['project'] = opts[:project]
20
- caps['browserstack.local'] = opts[:local_testing].to_s
21
- caps['browserstack.localIdentifier'] = opts[:local_identifier]
22
-
23
- @options = {
24
- url: "http://#{username}:#{access_key}@hub-cloud.browserstack.com/wd/hub",
25
- desired_capabilities: caps
26
- }
27
- end
28
-
29
- def open
30
- Watir::Browser.new :remote, options
31
- end
32
-
33
- private
34
-
35
- attr_reader :options
36
- end
37
- end
38
- end
39
- end
@@ -1,39 +0,0 @@
1
- require 'watir'
2
- require_relative 'browserstack_credentials'
3
- require_relative 'screen_size'
4
-
5
- module Browsenator
6
- module Remote
7
- module Browserstack
8
- class IE
9
- include BrowserstackCredentials
10
- include ScreenSize
11
-
12
- def initialize(opts = {})
13
- caps = Selenium::WebDriver::Remote::Capabilities.new
14
- caps['browser'] = 'IE'
15
- caps['browser_version'] = opts[:browser_version] || '11.0'
16
- caps['os'] = 'Windows'
17
- caps['os_version'] = '10'
18
- caps['resolution'] = screen_resolution(opts[:screen_width], opts[:screen_height])
19
- caps['project'] = opts[:project]
20
- caps['browserstack.local'] = opts[:local_testing].to_s
21
- caps['browserstack.localIdentifier'] = opts[:local_identifier]
22
-
23
- @options = {
24
- url: "http://#{username}:#{access_key}@hub-cloud.browserstack.com/wd/hub",
25
- desired_capabilities: caps
26
- }
27
- end
28
-
29
- def open
30
- Watir::Browser.new :remote, options
31
- end
32
-
33
- private
34
-
35
- attr_reader :options
36
- end
37
- end
38
- end
39
- end
@@ -1,52 +0,0 @@
1
- require 'watir'
2
- require_relative 'browserstack_credentials'
3
- require_relative 'screen_size'
4
-
5
- module Browsenator
6
- module Remote
7
- module Browserstack
8
- class Safari
9
- include BrowserstackCredentials
10
- include ScreenSize
11
-
12
- def initialize(opts = {})
13
- browser_version = opts[:browser_version] || '11.1'
14
-
15
- caps = Selenium::WebDriver::Remote::Capabilities.new
16
- caps['browser'] = 'Safari'
17
- caps['browser_version'] = browser_version
18
- caps['os'] = 'OS X'
19
- caps['os_version'] = @@os_version[browser_version]
20
- caps['resolution'] = screen_resolution(opts[:screen_width], opts[:screen_height])
21
- caps['project'] = opts[:project]
22
- caps['browserstack.local'] = opts[:local_testing].to_s
23
- caps['browserstack.localIdentifier'] = opts[:local_identifier]
24
-
25
- @options = {
26
- url: "http://#{username}:#{access_key}@hub-cloud.browserstack.com/wd/hub",
27
- desired_capabilities: caps
28
- }
29
- end
30
-
31
- def open
32
- Watir::Browser.new :remote, options
33
- end
34
-
35
- private
36
-
37
- attr_reader :options
38
-
39
- @@os_version = {
40
- '11.1' => 'High Sierra',
41
- '10.1' => 'Sierra',
42
- '9.1' => 'El Capitan',
43
- '8.0' => 'Yosemite',
44
- '7.1' => 'Mavericks',
45
- '6.2' => 'Mountain Lion',
46
- '6.0' => 'Lion',
47
- '5.1' => 'Snow Leopard'
48
- }
49
- end
50
- end
51
- end
52
- end