browsenator 1.4.0 → 1.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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