testcentricity_web 3.1.11 → 3.2.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
- SHA1:
3
- metadata.gz: d92158f9e2540012136111353ebaa64291ebf6d3
4
- data.tar.gz: b43b59d310ce1127f1421253631accfd55a2678f
2
+ SHA256:
3
+ metadata.gz: 676c8b3a7cd7c2381b6b9c62f1cf300ec4a7c74ebd110e865a5c1607eedd4e7f
4
+ data.tar.gz: 23f02fd3a177c4d51394f944f4e6ffd5a8ad9b098c26412cf30342ccdf703268
5
5
  SHA512:
6
- metadata.gz: ff1a09865c32c5b55f660ed57b492239b2d991a72a81836eec44e0b26b6775eddb1b4b3a6ce9e52204f9277527f4466d73f193a51b2561c51f364c6f218ce938
7
- data.tar.gz: 6765a097a243291ccd72011fb1e43bf87c4609047da521122cbb9c6cd7e9215bdf7ff161b3b84d2e7f21654e6656df1529bb7eaa6fd2ae64650edfe28be7f81a
6
+ metadata.gz: 271668919d950079396cc792b4d0ecf39189de49923d5c7d634b91444b786d8609740dfb7bdf33aa73b7a1b296780adb07391406808c2b5ed785d40071f76845
7
+ data.tar.gz: 3debabb5962cc9b1be7af9196ab3445b58e0639737060c1ce6751c7f7455f1ebaebb494575e248772c35495772980d67277e376b96c0cd18a874aca214f9776c
@@ -2,7 +2,17 @@
2
2
  All notable changes to this project will be documented in this file.
3
3
 
4
4
 
5
- ## [3.1.11] - 2019-01-20
5
+ ## [3.2.0] - 2019-07-28
6
+
7
+ ### Added
8
+ * Added support for connecting to and running your tests on cloud hosted browsers on the LambdaTest cloud platform.
9
+ * Added `UIElement.obscured?` and `UIElement.inspect` methods.
10
+ * Added `Video.wait_until_ready_state_is` and `Audio.wait_until_ready_state_is` methods.
11
+
12
+ ### Changed
13
+ * `Video.ready_state` and `Audio.ready_state` methods now return an Integer result.
14
+
15
+ ## [3.1.11] - 2019-06-20
6
16
 
7
17
  ### Added
8
18
  * Added `SelectList.get_group_count` and `SelectList.get_group_headings` methods.
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- testcentricity_web (3.1.11)
4
+ testcentricity_web (3.2.0)
5
5
  appium_lib
6
6
  browserstack-local
7
7
  capybara (>= 3.1, < 4)
@@ -21,11 +21,11 @@ GEM
21
21
  specs:
22
22
  addressable (2.6.0)
23
23
  public_suffix (>= 2.0.2, < 4.0)
24
- appium_lib (10.3.1)
25
- appium_lib_core (~> 3.1)
24
+ appium_lib (10.4.0)
25
+ appium_lib_core (~> 3.2)
26
26
  nokogiri (~> 1.8, >= 1.8.1)
27
27
  tomlrb (~> 1.1)
28
- appium_lib_core (3.1.3)
28
+ appium_lib_core (3.2.1)
29
29
  faye-websocket (~> 0.10.0)
30
30
  selenium-webdriver (~> 3.14, >= 3.14.1)
31
31
  axiom-types (0.1.1)
@@ -33,7 +33,7 @@ GEM
33
33
  ice_nine (~> 0.11.0)
34
34
  thread_safe (~> 0.3, >= 0.3.1)
35
35
  browserstack-local (1.3.0)
36
- capybara (3.24.0)
36
+ capybara (3.27.0)
37
37
  addressable
38
38
  mini_mime (>= 0.1.3)
39
39
  nokogiri (~> 1.8)
@@ -51,7 +51,7 @@ GEM
51
51
  thread_safe (~> 0.3, >= 0.3.1)
52
52
  equalizer (0.0.11)
53
53
  eventmachine (1.2.7)
54
- faker (1.9.3)
54
+ faker (2.0)
55
55
  i18n (>= 0.7)
56
56
  faye-websocket (0.10.9)
57
57
  eventmachine (>= 0.12.0)
@@ -60,19 +60,19 @@ GEM
60
60
  i18n (1.6.0)
61
61
  concurrent-ruby (~> 1.0)
62
62
  ice_nine (0.11.2)
63
- mini_mime (1.0.1)
63
+ mini_mime (1.0.2)
64
64
  mini_portile2 (2.4.0)
65
65
  nokogiri (1.10.3)
66
66
  mini_portile2 (~> 2.4.0)
67
67
  os (1.0.1)
68
68
  power_assert (1.1.4)
69
- public_suffix (3.1.0)
69
+ public_suffix (3.1.1)
70
70
  rack (2.0.7)
71
71
  rack-test (1.1.0)
72
72
  rack (>= 1.0, < 3)
73
73
  rake (12.3.2)
74
74
  redcarpet (3.4.0)
75
- regexp_parser (1.5.1)
75
+ regexp_parser (1.6.0)
76
76
  ruby-ole (1.2.12.2)
77
77
  rubyzip (1.2.3)
78
78
  selenium-webdriver (3.142.3)
data/README.md CHANGED
@@ -17,9 +17,9 @@ The TestCentricity™ Web gem supports running automated tests against the follo
17
17
  * mobile Chrome or Android browsers on Android Studio virtual device emulators (using Appium and Android Studio on OS X)
18
18
  * cloud hosted desktop (Firefox, Chrome, Safari, IE, or Edge) or mobile (iOS Mobile Safari or Android) web browsers using the [Browserstack](https://www.browserstack.com/list-of-browsers-and-platforms?product=automate),
19
19
  [Sauce Labs](https://saucelabs.com/open-source#automated-testing-platform), [CrossBrowserTesting](https://crossbrowsertesting.com/selenium-testing),
20
- [TestingBot](https://testingbot.com/features), or [Gridlastic](https://www.gridlastic.com/test-environments.html) services.
20
+ [TestingBot](https://testingbot.com/features), [Gridlastic](https://www.gridlastic.com/test-environments.html), or [LambdaTest](https://www.lambdatest.com/selenium-automation) services.
21
21
  * web portals utilizing JavaScript front end application frameworks like Ember, React, Angular, and GWT
22
- * enterprise web portals build using Siebel Open UI
22
+ * enterprise web portals built using Siebel Open UI
23
23
  * web pages containing HTML5 Video and Audio objects
24
24
 
25
25
 
@@ -488,6 +488,7 @@ With TestCentricity, all UI elements are based on the **UIElement** class, and i
488
488
  element.enabled?
489
489
  element.disabled?
490
490
  element.displayed?
491
+ element.obscured?
491
492
  element.get_value
492
493
  element.count
493
494
  element.style
@@ -498,6 +499,7 @@ With TestCentricity, all UI elements are based on the **UIElement** class, and i
498
499
  element.y
499
500
  element.get_attribute(attrib)
500
501
  element.get_native_attribute(attrib)
502
+ element.inspect
501
503
 
502
504
  **Object Accessibility (A11y) methods:**
503
505
 
@@ -904,8 +906,8 @@ Once your test environment is properly configured, the following **Environment V
904
906
  ### Remotely hosted desktop and mobile web browsers
905
907
 
906
908
  You can run your automated tests against remotely hosted desktop and mobile web browsers using the BrowserStack, CrossBrowserTesting,
907
- Sauce Labs, or TestingBot services. If your tests are running against a web site hosted on your local computer (`localhost`), or on a
908
- staging server inside your LAN, you must set the `TUNNELING` Environment Variable to `true`.
909
+ Sauce Labs, TestingBot, Gridlastic, or LambdaTest services. If your tests are running against a web site hosted on your local computer
910
+ (`localhost`), or on a staging server inside your LAN, you must set the `TUNNELING` Environment Variable to `true`.
909
911
 
910
912
 
911
913
  #### Remote desktop browsers on the BrowserStack service
@@ -1086,6 +1088,29 @@ regarding the specific capabilities.
1086
1088
  `VIDEO_URL` | [Optional] Video Files Location Endpoint URL shown in the **Your Selenium Grid Credentials** section of the Gridlastic Dashboard
1087
1089
 
1088
1090
 
1091
+
1092
+ #### Remote desktop browsers on the LambdaTest service
1093
+
1094
+ For remotely hosted desktop web browsers on the LambdaTest service, the following **Environment Variables** must be set as described in the table
1095
+ below. Use the Configuration Wizard on the [Selenium Desired Capabilities Generator](https://www.lambdatest.com/capabilities-generator/) to obtain
1096
+ information regarding the specific capabilities.
1097
+
1098
+ **Environment Variable** | **Description**
1099
+ --------------- | ----------------
1100
+ `WEB_BROWSER` | Must be set to `lambdatest`
1101
+ `LT_USERNAME` | Must be set to your LambdaTest account user name or email address
1102
+ `LT_AUTHKEY` | Must be set to your LambdaTest account access key
1103
+ `LT_OS` | Refer to `platform` capability in the sample script of the Wizard
1104
+ `LT_BROWSER` | Refer to `browserName` capability in the sample script of the Wizard
1105
+ `LT_VERSION` | Refer to `version` capability in chart
1106
+ `RESOLUTION` | [Optional] Refer to supported `resolution` capability in the sample script of the Wizard
1107
+ `BROWSER_SIZE` | [Optional] Specify width, height of browser window
1108
+ `RECORD_VIDEO` | [Optional] Enable screen video recording during test execution (`true` or `false`)
1109
+ `ALLOW_POPUPS` | [Optional] Allow popups (`true` or `false`) - for Safari, IE, and Edge browsers only
1110
+ `ALLOW_COOKIES` | [Optional] Allow all cookies (`true` or `false`) - for Safari browsers only
1111
+ `CONSOLE_LOGS` | [Optional] Used to capture browser console logs.
1112
+
1113
+
1089
1114
  ### Using Browser specific Profiles in cucumber.yml
1090
1115
 
1091
1116
  While you can set **Environment Variables** in the command line when invoking Cucumber, a preferred method of specifying and managing
@@ -1093,10 +1118,10 @@ target web browsers is to create browser specific **Profiles** that set the appr
1093
1118
  in your `cucumber.yml` file.
1094
1119
 
1095
1120
  Below is a list of Cucumber **Profiles** for supported locally and remotely hosted desktop and mobile web browsers (put these in in your
1096
- `cucumber.yml` file). Before you can use the BrowserStack, CrossBrowserTesting, Sauce Labs, TestingBot, or Gridlastic services, you will need to
1097
- replace the *INSERT USER NAME HERE* and *INSERT PASSWORD HERE* placeholder text with your user account and authorization code for the cloud
1098
- service(s) that you intend to connect with. When using the Gridlastic service, you will also need replace the *INSERT SUBDOMAIN HERE* placeholder
1099
- text with the Subdomain specified on the Grid Configuration Parameters section of the Gridlastic Dashboard.
1121
+ `cucumber.yml` file). Before you can use the BrowserStack, CrossBrowserTesting, Sauce Labs, TestingBot, Gridlastic or LambdaTest services, you
1122
+ will need to replace the *INSERT USER NAME HERE* and *INSERT PASSWORD HERE* placeholder text with your user account and authorization code for
1123
+ the cloud service(s) that you intend to connect with. When using the Gridlastic service, you will also need replace the *INSERT SUBDOMAIN HERE*
1124
+ placeholder text with the Subdomain specified on the Grid Configuration Parameters section of the Gridlastic Dashboard.
1100
1125
 
1101
1126
 
1102
1127
  <% desktop = "--tags @desktop --require features BROWSER_TILE=true BROWSER_SIZE=1500,1000" %>
@@ -1144,6 +1169,9 @@ text with the Subdomain specified on the Grid Configuration Parameters section o
1144
1169
  iphone8_plus: WEB_BROWSER=iphone8_plus HOST_BROWSER=chrome <%= mobile %>
1145
1170
  iphone_x: WEB_BROWSER=iphone_x HOST_BROWSER=chrome <%= mobile %>
1146
1171
  iphone_xr: WEB_BROWSER=iphone_xr HOST_BROWSER=chrome <%= mobile %>
1172
+ iphone_xr_chrome: WEB_BROWSER=iphone_xr_chrome HOST_BROWSER=chrome <%= mobile %>
1173
+ iphone_xr_firefox: WEB_BROWSER=iphone_xr_firefox HOST_BROWSER=chrome <%= mobile %>
1174
+ iphone_xr_edge: WEB_BROWSER=iphone_xr_edge HOST_BROWSER=chrome <%= mobile %>
1147
1175
  iphone_xs: WEB_BROWSER=iphone_xs HOST_BROWSER=chrome <%= mobile %>
1148
1176
  iphone_xs_max: WEB_BROWSER=iphone_xs_max HOST_BROWSER=chrome <%= mobile %>
1149
1177
  android_phone: WEB_BROWSER=android_phone HOST_BROWSER=chrome <%= mobile %>
@@ -1517,6 +1545,40 @@ text with the Subdomain specified on the Grid Configuration Parameters section o
1517
1545
  gl_chrome_linux: --profile gl_desktop GL_OS="LINUX" GL_BROWSER="chrome" GL_VERSION="latest"
1518
1546
 
1519
1547
 
1548
+ #==============
1549
+ # profiles for remotely hosted web browsers on the LambdaTest service
1550
+ #==============
1551
+
1552
+ lambdatest: WEB_BROWSER=lambdatest LT_USERNAME=<INSERT USER NAME HERE> LT_AUTHKEY=<INSERT PASSWORD HERE>
1553
+ lt_desktop: --profile lambdatest <%= desktop %> RESOLUTION="1920x1080"
1554
+ lt_firefox: LT_BROWSER="Firefox" LT_VERSION="67.0"
1555
+ lt_chrome: LT_BROWSER="Chrome" LT_VERSION="76.0"
1556
+ lt_safari: LT_BROWSER="Safari" ALLOW_COOKIES="true" ALLOW_POPUPS="true"
1557
+
1558
+ # LambdaTest OS X desktop browser profiles
1559
+ lt_macos_mojave: --profile lt_desktop LT_OS="macOS Mojave"
1560
+ lt_ff_mojave: --profile lt_macos_mojave --profile lt_firefox
1561
+ lt_chrome_mojave: --profile lt_macos_mojave --profile lt_chrome
1562
+ lt_safari_mojave: --profile lt_macos_mojave --profile lt_safari LT_VERSION="12.0"
1563
+
1564
+ lt_macos_high_sierra: --profile lt_desktop LT_OS="macOS High Sierra"
1565
+ lt_ff_high_sierra: --profile lt_macos_high_sierra --profile lt_firefox
1566
+ lt_chrome_high_sierra: --profile lt_macos_high_sierra --profile lt_chrome
1567
+ lt_safari_high_sierra: --profile lt_macos_high_sierra --profile lt_safari LT_VERSION="11.0"
1568
+
1569
+ lt_macos_sierra: --profile lt_desktop LT_OS="macOS Sierra"
1570
+ lt_ff_sierra: --profile lt_macos_sierra --profile lt_firefox
1571
+ lt_chrome_sierra: --profile lt_macos_sierra --profile lt_chrome
1572
+ lt_safari_sierra: --profile lt_macos_sierra --profile lt_safari LT_VERSION="10.0"
1573
+
1574
+ # LambdaTest Windows desktop browser profiles
1575
+ lt_win10: --profile lt_desktop LT_OS="Windows 10"
1576
+ lt_ff_win10: --profile lt_win10 --profile lt_firefox
1577
+ lt_chrome_win10: --profile lt_win10 --profile lt_chrome
1578
+ lt_ie11_win10: --profile lt_win10 LT_BROWSER="Internet Explorer" LT_VERSION="11.0"
1579
+ lt_edge_win10: --profile lt_win10 LT_BROWSER="MicrosoftEdge" LT_VERSION="18.0"
1580
+
1581
+
1520
1582
  To specify a locally hosted target browser using a profile at runtime, you use the flag `--profile` or `-p` followed by the profile name when
1521
1583
  invoking Cucumber in the command line. For instance, the following command invokes Cucumber and specifies that a local instance of Firefox
1522
1584
  will be used as the target web browser:
@@ -27,6 +27,7 @@ module TestCentricity
27
27
  window = Capybara.current_session.driver.browser.manage.window
28
28
  window.maximize
29
29
  end
30
+
30
31
  # Sets the position of the browser window.
31
32
  #
32
33
  # @param x [Integer] the desired x coordinate
@@ -1,3 +1,3 @@
1
1
  module TestCentricityWeb
2
- VERSION = '3.1.11'
2
+ VERSION = '3.2.0'
3
3
  end
@@ -39,6 +39,9 @@ module TestCentricity
39
39
  when :gridlastic
40
40
  initialize_gridlastic
41
41
  context = 'Gridlastic cloud service'
42
+ when :lambdatest
43
+ initialize_lambdatest
44
+ context = 'LambdaTest cloud service'
42
45
  when :saucelabs
43
46
  initialize_saucelabs
44
47
  context = 'Sauce Labs cloud service'
@@ -434,6 +437,60 @@ module TestCentricity
434
437
  end
435
438
  end
436
439
 
440
+ def self.initialize_lambdatest
441
+ browser = ENV['LT_BROWSER']
442
+ Environ.grid = :lambdatest
443
+ Environ.os = ENV['LT_OS']
444
+ Environ.platform = :desktop
445
+ Environ.tunneling = ENV['TUNNELING'] if ENV['TUNNELING']
446
+
447
+ endpoint = "http://#{ENV['LT_USERNAME']}:#{ENV['LT_AUTHKEY']}@hub.lambdatest.com/wd/hub"
448
+ Capybara.register_driver :lambdatest do |app|
449
+ capabilities = Selenium::WebDriver::Remote::Capabilities.new
450
+ capabilities['name'] = ENV['AUTOMATE_PROJECT'] if ENV['AUTOMATE_PROJECT']
451
+ capabilities['browserName'] = browser
452
+ capabilities['version'] = ENV['LT_VERSION'] if ENV['LT_VERSION']
453
+ capabilities['platform'] = ENV['LT_OS']
454
+ capabilities['resolution'] = ENV['RESOLUTION'] if ENV['RESOLUTION']
455
+ capabilities['video'] = ENV['RECORD_VIDEO'] if ENV['RECORD_VIDEO']
456
+ capabilities['console'] = ENV['CONSOLE_LOGS'] if ENV['CONSOLE_LOGS']
457
+ capabilities['network'] = true
458
+ capabilities['visual'] = true
459
+ capabilities['tunnel'] = ENV['TUNNELING'] if ENV['TUNNELING']
460
+
461
+ case browser.downcase.to_sym
462
+ when :safari
463
+ capabilities['safari.popups'] = ENV['ALLOW_POPUPS'] if ENV['ALLOW_POPUPS']
464
+ capabilities['safari.cookies'] = ENV['ALLOW_COOKIES'] if ENV['ALLOW_COOKIES']
465
+ when :ie
466
+ capabilities['ie.popups'] = ENV['ALLOW_POPUPS'] if ENV['ALLOW_POPUPS']
467
+ when :edge
468
+ capabilities['edge.popups'] = ENV['ALLOW_POPUPS'] if ENV['ALLOW_POPUPS']
469
+ end
470
+
471
+ context_message = ENV['TEST_CONTEXT'] ? "#{Environ.test_environment.upcase} - #{ENV['TEST_CONTEXT']}" : Environ.test_environment.upcase
472
+ if ENV['PARALLEL']
473
+ thread_num = ENV['TEST_ENV_NUMBER']
474
+ thread_num = 1 if thread_num.blank?
475
+ context_message = "#{context_message} - Thread ##{thread_num}"
476
+ end
477
+ capabilities['build'] = context_message
478
+
479
+ Capybara::Selenium::Driver.new(app, browser: :remote, url: endpoint, desired_capabilities: capabilities)
480
+ end
481
+
482
+ Environ.browser = browser
483
+
484
+ Capybara.default_driver = :lambdatest
485
+ Capybara.run_server = false
486
+ # configure file_detector for remote uploads
487
+ selenium = Capybara.page.driver.browser
488
+ selenium.file_detector = lambda do |args|
489
+ str = args.first.to_s
490
+ str if File.exist?(str)
491
+ end
492
+ end
493
+
437
494
  def self.initialize_remote
438
495
  Environ.grid = :selenium_grid
439
496
  browser = ENV['WEB_BROWSER'].downcase.to_sym
@@ -171,14 +171,39 @@ module TestCentricity
171
171
 
172
172
  # Return audio readyState property
173
173
  #
174
- # @return [Integer or Float] audio ready state
174
+ # @return [Integer] audio ready state
175
+ # 0 = HAVE_NOTHING - no information whether or not the audio/video is ready
176
+ # 1 = HAVE_METADATA - metadata for the audio/video is ready
177
+ # 2 = HAVE_CURRENT_DATA - data for the current playback position is available, but not enough data to play next frame/millisecond
178
+ # 3 = HAVE_FUTURE_DATA - data for the current and at least the next frame is available
179
+ # 4 = HAVE_ENOUGH_DATA - enough data available to start playing
175
180
  # @example
176
181
  # audio_status = audio_player.ready_state
177
182
  #
178
183
  def ready_state
179
184
  obj, = find_element(visible = :all)
180
185
  object_not_found_exception(obj, :audio)
181
- obj.native.attribute('readyState')
186
+ obj.native.attribute('readyState').to_i
187
+ end
188
+
189
+ # Wait until the audio object's readyState value equals the specified value, or until the specified wait time has expired. If the wait
190
+ # time is nil, then the wait time will be Capybara.default_max_wait_time.
191
+ #
192
+ # @param value [Integer] value expected
193
+ # @param seconds [Integer or Float] wait time in seconds
194
+ # @example
195
+ # audio_player.wait_until_ready_state_is(4, 5)
196
+ #
197
+ def wait_until_ready_state_is(value, seconds = nil, post_exception = true)
198
+ timeout = seconds.nil? ? Capybara.default_max_wait_time : seconds
199
+ wait = Selenium::WebDriver::Wait.new(timeout: timeout)
200
+ wait.until { ready_state == value }
201
+ rescue StandardError
202
+ if post_exception
203
+ raise "Ready state of Audio #{object_ref_message} failed to equal '#{value}' after #{timeout} seconds" unless get_value == value
204
+ else
205
+ ready_state == value
206
+ end
182
207
  end
183
208
 
184
209
  # Return audio volume property
@@ -251,6 +251,30 @@ module TestCentricity
251
251
  obj.disabled?
252
252
  end
253
253
 
254
+ # Is UI object obscured (not currently in viewport and not clickable)?
255
+ #
256
+ # @return [Boolean]
257
+ # @example
258
+ # buy_now_button.obscured?
259
+ #
260
+ def obscured?
261
+ obj, type = find_element
262
+ object_not_found_exception(obj, type)
263
+ obj.obscured?
264
+ end
265
+
266
+ # Return a human readable representation of the UI element
267
+ #
268
+ # @return [String]
269
+ # @example
270
+ # buy_now_button.inspect
271
+ #
272
+ def inspect
273
+ obj, type = find_element
274
+ object_not_found_exception(obj, type)
275
+ obj.inspect
276
+ end
277
+
254
278
  # Wait until the object exists, or until the specified wait time has expired. If the wait time is nil, then the wait
255
279
  # time will be Capybara.default_max_wait_time.
256
280
  #
@@ -171,14 +171,39 @@ module TestCentricity
171
171
 
172
172
  # Return video readyState property
173
173
  #
174
- # @return [Integer or Float] video ready state
174
+ # @return [Integer] video ready state
175
+ # 0 = HAVE_NOTHING - no information whether or not the audio/video is ready
176
+ # 1 = HAVE_METADATA - metadata for the audio/video is ready
177
+ # 2 = HAVE_CURRENT_DATA - data for the current playback position is available, but not enough data to play next frame/millisecond
178
+ # 3 = HAVE_FUTURE_DATA - data for the current and at least the next frame is available
179
+ # 4 = HAVE_ENOUGH_DATA - enough data available to start playing
175
180
  # @example
176
181
  # vid_status = video_player.ready_state
177
182
  #
178
183
  def ready_state
179
184
  obj, = find_element
180
185
  object_not_found_exception(obj, nil)
181
- obj.native.attribute('readyState')
186
+ obj.native.attribute('readyState').to_i
187
+ end
188
+
189
+ # Wait until the video object's readyState value equals the specified value, or until the specified wait time has expired. If the wait
190
+ # time is nil, then the wait time will be Capybara.default_max_wait_time.
191
+ #
192
+ # @param value [Integer] value expected
193
+ # @param seconds [Integer or Float] wait time in seconds
194
+ # @example
195
+ # video_player.wait_until_ready_state_is(4, 5)
196
+ #
197
+ def wait_until_ready_state_is(value, seconds = nil, post_exception = true)
198
+ timeout = seconds.nil? ? Capybara.default_max_wait_time : seconds
199
+ wait = Selenium::WebDriver::Wait.new(timeout: timeout)
200
+ wait.until { ready_state == value }
201
+ rescue StandardError
202
+ if post_exception
203
+ raise "Ready state of Video #{object_ref_message} failed to equal '#{value}' after #{timeout} seconds" unless get_value == value
204
+ else
205
+ ready_state == value
206
+ end
182
207
  end
183
208
 
184
209
  # Return video volume property
@@ -18,7 +18,7 @@ Gem::Specification.new do |spec|
18
18
  Phone, Blackberry, Kindle Fire) running within a local instance of Chrome, mobile Safari browsers on iOS device simulators
19
19
  or physical iOS devices (using Appium and XCode on OS X), mobile Chrome or Android browsers on Android Studio virtual
20
20
  device emulators (using Appium and Android Studio on OS X), or cloud hosted desktop or mobile web browsers (using the
21
- BrowserStack, Sauce Labs, CrossBrowserTesting, TestingBot, or Gridlastic services).'
21
+ BrowserStack, Sauce Labs, CrossBrowserTesting, TestingBot, Gridlastic, or LambdaTest services).'
22
22
  spec.homepage = ''
23
23
  spec.license = 'BSD-3-Clause'
24
24
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: testcentricity_web
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.1.11
4
+ version: 3.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - A.J. Mrozinski
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-06-19 00:00:00.000000000 Z
11
+ date: 2019-07-31 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -240,7 +240,7 @@ description: |2-
240
240
  Phone, Blackberry, Kindle Fire) running within a local instance of Chrome, mobile Safari browsers on iOS device simulators
241
241
  or physical iOS devices (using Appium and XCode on OS X), mobile Chrome or Android browsers on Android Studio virtual
242
242
  device emulators (using Appium and Android Studio on OS X), or cloud hosted desktop or mobile web browsers (using the
243
- BrowserStack, Sauce Labs, CrossBrowserTesting, TestingBot, or Gridlastic services).
243
+ BrowserStack, Sauce Labs, CrossBrowserTesting, TestingBot, Gridlastic, or LambdaTest services).
244
244
  email:
245
245
  - testcentricity@gmail.com
246
246
  executables: []
@@ -325,7 +325,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
325
325
  requirements:
326
326
  - Capybara, Selenium-WebDriver
327
327
  rubyforge_project:
328
- rubygems_version: 2.6.14
328
+ rubygems_version: 2.7.9
329
329
  signing_key:
330
330
  specification_version: 4
331
331
  summary: A Page Object and Data Object Model Framework for desktop and mobile web