testcentricity_web 4.6.7 → 4.6.9
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 +4 -4
- data/CHANGELOG.md +35 -0
- data/README.md +19 -13
- data/lib/testcentricity_web/version.rb +1 -1
- data/lib/testcentricity_web/web_core/page_objects_helper.rb +44 -32
- data/lib/testcentricity_web/web_elements/table.rb +64 -14
- data/lib/testcentricity_web/web_elements/textfield.rb +0 -21
- data/lib/testcentricity_web/web_elements/ui_element.rb +82 -18
- metadata +4 -4
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 48391198c0afc8b42f948c2e3dd6dbf77b0b8ff486fa4e9746bbaf2ec34c0231
|
|
4
|
+
data.tar.gz: e377c0af90d0b0478ea4dcad9ef08b1df337facc87dabc0215cbbed6c2a51a31
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 762285729fbfcfc5f56b56a060f5a32d0e23f9f865417733621be3241dc9da01ca6b562991aa0d871989702d6a1b54952f3f2a7c7d640e9f68c726e5dd1ad0f4
|
|
7
|
+
data.tar.gz: fc982517f54bf55c571f5b0062abd1237e6df518badda8711a9ac2812faebfaba58d59703d739c91b25a9bf9e4187399160dc15449fa637f6a5e4d263a9651e8
|
data/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,41 @@
|
|
|
2
2
|
All notable changes to this project will be documented in this file.
|
|
3
3
|
|
|
4
4
|
|
|
5
|
+
## [4.6.9] - 31-OCT-2025
|
|
6
|
+
|
|
7
|
+
### Added
|
|
8
|
+
|
|
9
|
+
* Added `Table.get_footer_columns` and `Table.get_footer_column`methods.
|
|
10
|
+
* Updated `PageObject.verify_ui_states` and `PageSection.verify_ui_states` methods to support verification of the following
|
|
11
|
+
`Table` properties:
|
|
12
|
+
* `:column_footers`
|
|
13
|
+
* `:column_footer`
|
|
14
|
+
* `:column_header`
|
|
15
|
+
|
|
16
|
+
### Changed
|
|
17
|
+
|
|
18
|
+
* `UIElement.get_max` now works with HTML `<progress>` elements.
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
## [4.6.8] - 27-OCT-2025
|
|
22
|
+
|
|
23
|
+
### Changed
|
|
24
|
+
|
|
25
|
+
* `UIElement.aria_valuemax`, `UIElement.aria_valuemin`, and `UIElement.aria_valuenow` now return `Integer` or `Float`
|
|
26
|
+
instead of `String` result.
|
|
27
|
+
* `UIElement.aria_rowcount` and `UIElement.aria_colcount` now return `Integer` instead of `String` result.
|
|
28
|
+
|
|
29
|
+
### Added
|
|
30
|
+
* Updated `PageObject.verify_ui_states` and `PageSection.verify_ui_states` methods to support verification of the following
|
|
31
|
+
`Table` properties:
|
|
32
|
+
* `:cell_attribute`
|
|
33
|
+
* `:row_attribute`
|
|
34
|
+
* `:aria_rowindex`
|
|
35
|
+
|
|
36
|
+
### Fixed
|
|
37
|
+
* `Table.get_row_data` and `Table.get_row_attribute` methods now return data for row 1 instead of `nil`.
|
|
38
|
+
|
|
39
|
+
|
|
5
40
|
## [4.6.7] - 21-OCT-2025
|
|
6
41
|
|
|
7
42
|
### Added
|
data/README.md
CHANGED
|
@@ -24,7 +24,7 @@ The TestCentricity™ For Web gem supports connecting to, and running automated
|
|
|
24
24
|
* [TestingBot](https://testingbot.com/features)
|
|
25
25
|
* [LambdaTest](https://www.lambdatest.com/selenium-automation)
|
|
26
26
|
* web portals utilizing JavaScript front end application frameworks like Ember, React, Angular, and GWT
|
|
27
|
-
* web pages containing HTML5 Video and Audio objects
|
|
27
|
+
* web pages containing HTML5 Video and Audio objects, including text caption tracks
|
|
28
28
|
* locally hosted emulated iOS Mobile Safari, Android, Windows Phone, or Blackberry mobile browsers (running within a local instance of Chrome)
|
|
29
29
|
|
|
30
30
|
|
|
@@ -40,15 +40,15 @@ Cucumber can be found [here](https://github.com/TestCentricity/tc_multi_webdrive
|
|
|
40
40
|
|
|
41
41
|
### Which gem should I use?
|
|
42
42
|
|
|
43
|
-
* The [TestCentricity For **Web** gem](https://rubygems.org/gems/testcentricity_web) supports testing of web
|
|
43
|
+
* The [TestCentricity For **Web** gem](https://rubygems.org/gems/testcentricity_web) supports testing of web apps via desktop and mobile web browsers
|
|
44
44
|
* The [TestCentricity For **Mobile** gem](https://rubygems.org/gems/testcentricity_mobile) supports testing of native iOS and Android mobile apps
|
|
45
45
|
* The [TestCentricity For **Apps** gem](https://rubygems.org/gems/testcentricity_apps) supports testing of MacOS desktop apps and native iOS and Android mobile apps
|
|
46
46
|
|
|
47
|
-
| Tested platforms
|
|
48
|
-
|
|
49
|
-
| Desktop/mobile web
|
|
50
|
-
| Native mobile iOS and/or Android apps only
|
|
51
|
-
| MacOS desktop apps
|
|
47
|
+
| Tested platforms | TestCentricity For Web | TestCentricity For Mobile | TestCentricity For Apps |
|
|
48
|
+
|--------------------------------------------|:----------------------:|:-------------------------:|:-----------------------:|
|
|
49
|
+
| Desktop/mobile web apps only | Yes | No | No |
|
|
50
|
+
| Native mobile iOS and/or Android apps only | No | Yes | Yes |
|
|
51
|
+
| MacOS desktop apps | No | No | Yes |
|
|
52
52
|
|
|
53
53
|
|
|
54
54
|
## Installation
|
|
@@ -781,12 +781,18 @@ The `verify_ui_states` method supports the following property/state pairs:
|
|
|
781
781
|
|
|
782
782
|
**Tables**
|
|
783
783
|
|
|
784
|
-
:rowcount
|
|
785
|
-
:columncount
|
|
786
|
-
:columnheaders
|
|
787
|
-
:
|
|
788
|
-
:
|
|
789
|
-
:
|
|
784
|
+
:rowcount Integer
|
|
785
|
+
:columncount Integer
|
|
786
|
+
:columnheaders Array of String
|
|
787
|
+
:columnfooters Array of String
|
|
788
|
+
:cell Hash
|
|
789
|
+
:row Hash
|
|
790
|
+
:column Hash
|
|
791
|
+
:column_header Hash
|
|
792
|
+
:column_footer Hash
|
|
793
|
+
:cell_attribute Integer, Float, or String
|
|
794
|
+
:row_attribute Integer, Float, or String
|
|
795
|
+
:aria_rowindex Integer
|
|
790
796
|
|
|
791
797
|
**Audio/Video Media Objects**
|
|
792
798
|
|
|
@@ -151,8 +151,6 @@ module TestCentricity
|
|
|
151
151
|
ui_object.active_track_source
|
|
152
152
|
when :all_tracks_data
|
|
153
153
|
ui_object.all_tracks_data
|
|
154
|
-
when :crossorigin
|
|
155
|
-
ui_object.crossorigin
|
|
156
154
|
when :preload
|
|
157
155
|
ui_object.preload
|
|
158
156
|
when :poster
|
|
@@ -167,6 +165,8 @@ module TestCentricity
|
|
|
167
165
|
ui_object.get_group_headings
|
|
168
166
|
when :column_headers
|
|
169
167
|
ui_object.get_header_columns
|
|
168
|
+
when :column_footers
|
|
169
|
+
ui_object.get_footer_columns
|
|
170
170
|
when :count, :count_visible
|
|
171
171
|
ui_object.count(visible = true)
|
|
172
172
|
when :all_items, :all_list_items
|
|
@@ -177,19 +177,43 @@ module TestCentricity
|
|
|
177
177
|
ui_object.style
|
|
178
178
|
when :href
|
|
179
179
|
ui_object.href
|
|
180
|
+
when :content_editable
|
|
181
|
+
ui_object.content_editable?
|
|
180
182
|
when :role
|
|
181
183
|
ui_object.role
|
|
182
184
|
when :aria_disabled
|
|
183
185
|
ui_object.aria_disabled?
|
|
184
|
-
# :nocov:
|
|
185
|
-
when :count_all
|
|
186
|
-
ui_object.count(visible = :all)
|
|
187
186
|
when :aria_label
|
|
188
187
|
ui_object.aria_label
|
|
189
|
-
when :tabindex
|
|
190
|
-
ui_object.tabindex
|
|
191
188
|
when :aria_labelledby
|
|
192
189
|
ui_object.aria_labelledby
|
|
190
|
+
when :aria_required
|
|
191
|
+
ui_object.aria_required?
|
|
192
|
+
when :aria_checked
|
|
193
|
+
ui_object.aria_checked?
|
|
194
|
+
when :aria_readonly
|
|
195
|
+
ui_object.aria_readonly?
|
|
196
|
+
when :aria_rowcount
|
|
197
|
+
ui_object.aria_rowcount
|
|
198
|
+
when :aria_colcount
|
|
199
|
+
ui_object.aria_colcount
|
|
200
|
+
when :aria_valuemax
|
|
201
|
+
ui_object.aria_valuemax
|
|
202
|
+
when :aria_valuemin
|
|
203
|
+
ui_object.aria_valuemin
|
|
204
|
+
when :aria_valuenow
|
|
205
|
+
ui_object.aria_valuenow
|
|
206
|
+
when :aria_orientation
|
|
207
|
+
ui_object.aria_orientation
|
|
208
|
+
when :aria_multiline
|
|
209
|
+
ui_object.aria_multiline?
|
|
210
|
+
when :aria_multiselectable
|
|
211
|
+
ui_object.aria_multiselectable?
|
|
212
|
+
# :nocov:
|
|
213
|
+
when :count_all
|
|
214
|
+
ui_object.count(visible = :all)
|
|
215
|
+
when :tabindex
|
|
216
|
+
ui_object.tabindex
|
|
193
217
|
when :aria_describedby
|
|
194
218
|
ui_object.aria_describedby
|
|
195
219
|
when :aria_live
|
|
@@ -202,34 +226,16 @@ module TestCentricity
|
|
|
202
226
|
ui_object.aria_hidden?
|
|
203
227
|
when :aria_expanded
|
|
204
228
|
ui_object.aria_expanded?
|
|
205
|
-
|
|
206
|
-
ui_object.aria_required?
|
|
207
|
-
when :aria_invalid
|
|
229
|
+
when :aria_invalid
|
|
208
230
|
ui_object.aria_invalid?
|
|
209
|
-
when :aria_checked
|
|
210
|
-
ui_object.aria_checked?
|
|
211
|
-
when :aria_readonly
|
|
212
|
-
ui_object.aria_readonly?
|
|
213
231
|
when :aria_pressed
|
|
214
232
|
ui_object.aria_pressed?
|
|
215
233
|
when :aria_haspopup
|
|
216
234
|
ui_object.aria_haspopup?
|
|
217
235
|
when :aria_sort
|
|
218
236
|
ui_object.aria_sort
|
|
219
|
-
when :aria_rowcount
|
|
220
|
-
ui_object.aria_rowcount
|
|
221
|
-
when :aria_colcount
|
|
222
|
-
ui_object.aria_colcount
|
|
223
|
-
when :aria_valuemax
|
|
224
|
-
ui_object.aria_valuemax
|
|
225
|
-
when :aria_valuemin
|
|
226
|
-
ui_object.aria_valuemin
|
|
227
|
-
when :aria_valuenow
|
|
228
|
-
ui_object.aria_valuenow
|
|
229
237
|
when :aria_valuetext
|
|
230
238
|
ui_object.aria_valuetext
|
|
231
|
-
when :aria_orientation
|
|
232
|
-
ui_object.aria_orientation
|
|
233
239
|
when :aria_keyshortcuts
|
|
234
240
|
ui_object.aria_keyshortcuts
|
|
235
241
|
when :aria_roledescription
|
|
@@ -240,12 +246,8 @@ module TestCentricity
|
|
|
240
246
|
ui_object.aria_controls
|
|
241
247
|
when :aria_modal
|
|
242
248
|
ui_object.aria_modal?
|
|
243
|
-
when :
|
|
244
|
-
ui_object.
|
|
245
|
-
when :aria_multiselectable
|
|
246
|
-
ui_object.aria_multiselectable?
|
|
247
|
-
when :content_editable
|
|
248
|
-
ui_object.content_editable?
|
|
249
|
+
when :crossorigin
|
|
250
|
+
ui_object.crossorigin
|
|
249
251
|
# :nocov:
|
|
250
252
|
when :validation_message
|
|
251
253
|
ui_object.validation_message
|
|
@@ -281,12 +283,22 @@ module TestCentricity
|
|
|
281
283
|
ui_object.get_table_row(value.to_i)
|
|
282
284
|
when :column
|
|
283
285
|
ui_object.get_table_column(value.to_i)
|
|
286
|
+
when :column_header
|
|
287
|
+
ui_object.get_header_column(value.to_i)
|
|
288
|
+
when :column_footer
|
|
289
|
+
ui_object.get_footer_column(value.to_i)
|
|
284
290
|
when :item
|
|
285
291
|
ui_object.get_list_item(value.to_i)
|
|
286
292
|
when :attribute
|
|
287
293
|
ui_object.get_attribute(value)
|
|
288
294
|
when :native_attribute
|
|
289
295
|
ui_object.get_native_attribute(value)
|
|
296
|
+
when :cell_attribute
|
|
297
|
+
ui_object.get_cell_attribute(value[0].to_i, value[1].to_i, value[2])
|
|
298
|
+
when :row_attribute
|
|
299
|
+
ui_object.get_row_attribute(value[0].to_i, value[1])
|
|
300
|
+
when :aria_rowindex
|
|
301
|
+
ui_object.get_row_attribute(value.to_i, 'aria-rowindex')
|
|
290
302
|
else
|
|
291
303
|
raise "#{key} is not a valid property key"
|
|
292
304
|
end
|
|
@@ -8,6 +8,9 @@ module TestCentricity
|
|
|
8
8
|
attr_accessor :table_header
|
|
9
9
|
attr_accessor :header_row
|
|
10
10
|
attr_accessor :header_column
|
|
11
|
+
attr_accessor :table_footer
|
|
12
|
+
attr_accessor :footer_row
|
|
13
|
+
attr_accessor :footer_column
|
|
11
14
|
attr_accessor :row_header
|
|
12
15
|
attr_accessor :tree_expand
|
|
13
16
|
attr_accessor :tree_collapse
|
|
@@ -24,6 +27,9 @@ module TestCentricity
|
|
|
24
27
|
table_header: 'thead',
|
|
25
28
|
header_row: 'tr',
|
|
26
29
|
header_column: 'th',
|
|
30
|
+
table_footer: 'tfoot',
|
|
31
|
+
footer_row: 'tr',
|
|
32
|
+
footer_column: 'th',
|
|
27
33
|
row_header: nil
|
|
28
34
|
}
|
|
29
35
|
|
|
@@ -55,6 +61,12 @@ module TestCentricity
|
|
|
55
61
|
@header_row = value
|
|
56
62
|
when :header_column
|
|
57
63
|
@header_column = value
|
|
64
|
+
when :table_footer
|
|
65
|
+
@table_footer = value
|
|
66
|
+
when :footer_row
|
|
67
|
+
@footer_row = value
|
|
68
|
+
when :footer_column
|
|
69
|
+
@footer_column = value
|
|
58
70
|
when :row_header
|
|
59
71
|
@row_header = value
|
|
60
72
|
when :tree_expand
|
|
@@ -317,13 +329,9 @@ module TestCentricity
|
|
|
317
329
|
raise "Row #{row} exceeds number of rows (#{row_count}) in table #{object_ref_message}" if row > row_count
|
|
318
330
|
case @locator_type
|
|
319
331
|
when :xpath
|
|
320
|
-
row
|
|
321
|
-
set_alt_locator("#{@locator}/#{@table_body}/#{@table_row}[#{row}]") :
|
|
322
|
-
set_alt_locator("#{@locator}/#{@table_body}/#{@table_row}")
|
|
332
|
+
set_alt_locator("#{@locator}/#{@table_body}/#{@table_row}[#{row}]")
|
|
323
333
|
when :css
|
|
324
|
-
|
|
325
|
-
set_alt_locator("#{@locator} > #{@table_body} > #{@table_row}:nth-of-type(#{row})") :
|
|
326
|
-
set_alt_locator("#{@locator} > #{@table_body} > #{@table_row}")
|
|
334
|
+
set_alt_locator("#{@locator} > #{@table_body} > #{@table_row}:nth-of-type(#{row})")
|
|
327
335
|
end
|
|
328
336
|
value = get_value if exists?
|
|
329
337
|
clear_alt_locator
|
|
@@ -431,7 +439,15 @@ module TestCentricity
|
|
|
431
439
|
set_table_cell_locator(row, column)
|
|
432
440
|
result = get_native_attribute(attrib)
|
|
433
441
|
clear_alt_locator
|
|
434
|
-
result
|
|
442
|
+
unless result.blank?
|
|
443
|
+
if result.is_int?
|
|
444
|
+
result.to_i
|
|
445
|
+
elsif result.is_float?
|
|
446
|
+
result.to_f
|
|
447
|
+
else
|
|
448
|
+
result
|
|
449
|
+
end
|
|
450
|
+
end
|
|
435
451
|
end
|
|
436
452
|
|
|
437
453
|
def get_row_attribute(row, attrib)
|
|
@@ -439,17 +455,21 @@ module TestCentricity
|
|
|
439
455
|
raise "Row #{row} exceeds number of rows (#{row_count}) in table #{object_ref_message}" if row > row_count
|
|
440
456
|
case @locator_type
|
|
441
457
|
when :xpath
|
|
442
|
-
row
|
|
443
|
-
set_alt_locator("#{@locator}/#{@table_body}/#{@table_row}[#{row}]") :
|
|
444
|
-
set_alt_locator("#{@locator}/#{@table_body}/#{@table_row}")
|
|
458
|
+
set_alt_locator("#{@locator}/#{@table_body}/#{@table_row}[#{row}]")
|
|
445
459
|
when :css
|
|
446
|
-
|
|
447
|
-
set_alt_locator("#{@locator} > #{@table_body} > #{@table_row}:nth-of-type(#{row})") :
|
|
448
|
-
set_alt_locator("#{@locator} > #{@table_body} > #{@table_row}")
|
|
460
|
+
set_alt_locator("#{@locator} > #{@table_body} > #{@table_row}:nth-of-type(#{row})")
|
|
449
461
|
end
|
|
450
462
|
result = get_native_attribute(attrib)
|
|
451
463
|
clear_alt_locator
|
|
452
|
-
result
|
|
464
|
+
unless result.blank?
|
|
465
|
+
if result.is_int?
|
|
466
|
+
result.to_i
|
|
467
|
+
elsif result.is_float?
|
|
468
|
+
result.to_f
|
|
469
|
+
else
|
|
470
|
+
result
|
|
471
|
+
end
|
|
472
|
+
end
|
|
453
473
|
end
|
|
454
474
|
|
|
455
475
|
def find_row_attribute(attrib, search_value)
|
|
@@ -568,6 +588,36 @@ module TestCentricity
|
|
|
568
588
|
columns
|
|
569
589
|
end
|
|
570
590
|
|
|
591
|
+
def get_footer_column(column)
|
|
592
|
+
column_count = get_column_count
|
|
593
|
+
raise "Column #{column} exceeds number of columns (#{column_count}) in table footer #{object_ref_message}" if column > column_count
|
|
594
|
+
case @locator_type
|
|
595
|
+
when :xpath
|
|
596
|
+
set_alt_locator("#{@locator}//#{@table_footer}/#{@footer_row}/#{@footer_column}[#{column}]")
|
|
597
|
+
when :css
|
|
598
|
+
set_alt_locator("#{@locator} #{@table_footer} > #{@footer_row} > #{@footer_column}:nth-of-type(#{column})")
|
|
599
|
+
end
|
|
600
|
+
value = get_value(:all) if exists?(:all)
|
|
601
|
+
clear_alt_locator
|
|
602
|
+
value
|
|
603
|
+
end
|
|
604
|
+
|
|
605
|
+
def get_footer_columns
|
|
606
|
+
columns = []
|
|
607
|
+
column_count = get_column_count
|
|
608
|
+
(1..column_count).each do |column|
|
|
609
|
+
case @locator_type
|
|
610
|
+
when :xpath
|
|
611
|
+
set_alt_locator("#{@locator}//#{@table_footer}/#{@footer_row}/#{@footer_column}[#{column}]")
|
|
612
|
+
when :css
|
|
613
|
+
set_alt_locator("#{@locator} #{@table_footer} > #{@footer_row} > #{@footer_column}:nth-of-type(#{column})")
|
|
614
|
+
end
|
|
615
|
+
columns.push(get_value(:all)) if exists?(:all)
|
|
616
|
+
end
|
|
617
|
+
clear_alt_locator
|
|
618
|
+
columns
|
|
619
|
+
end
|
|
620
|
+
|
|
571
621
|
def is_table_row_expanded?(row, column)
|
|
572
622
|
row_count = get_row_count
|
|
573
623
|
raise "Row #{row} exceeds number of rows (#{row_count}) in table #{object_ref_message}" if row > row_count
|
|
@@ -92,27 +92,6 @@ module TestCentricity
|
|
|
92
92
|
end
|
|
93
93
|
end
|
|
94
94
|
|
|
95
|
-
# Return max attribute of a number type text field.
|
|
96
|
-
#
|
|
97
|
-
# @return [Integer]
|
|
98
|
-
# @example
|
|
99
|
-
# max_points_value = points_field.get_max
|
|
100
|
-
#
|
|
101
|
-
def get_max
|
|
102
|
-
obj, = find_element
|
|
103
|
-
object_not_found_exception(obj, nil)
|
|
104
|
-
max = obj.native.attribute('max')
|
|
105
|
-
unless max.blank?
|
|
106
|
-
if max.is_int?
|
|
107
|
-
max.to_i
|
|
108
|
-
elsif max.is_float?
|
|
109
|
-
max.to_f
|
|
110
|
-
else
|
|
111
|
-
max
|
|
112
|
-
end
|
|
113
|
-
end
|
|
114
|
-
end
|
|
115
|
-
|
|
116
95
|
# Return step attribute of a number type text field.
|
|
117
96
|
#
|
|
118
97
|
# @return [Integer]
|
|
@@ -577,13 +577,15 @@ module TestCentricity
|
|
|
577
577
|
def get_value(visible = true)
|
|
578
578
|
obj, type = find_element(visible)
|
|
579
579
|
object_not_found_exception(obj, type)
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
|
|
583
|
-
|
|
584
|
-
|
|
585
|
-
|
|
586
|
-
|
|
580
|
+
value = case obj.tag_name.downcase
|
|
581
|
+
when 'input', 'select', 'textarea'
|
|
582
|
+
obj.value
|
|
583
|
+
when 'progress'
|
|
584
|
+
obj.value.to_i
|
|
585
|
+
else
|
|
586
|
+
obj.text
|
|
587
|
+
end
|
|
588
|
+
value.is_a?(String) ? value.gsub(/[[:space:]]+/, ' ').strip : value
|
|
587
589
|
end
|
|
588
590
|
|
|
589
591
|
alias get_caption get_value
|
|
@@ -700,6 +702,27 @@ module TestCentricity
|
|
|
700
702
|
)
|
|
701
703
|
end
|
|
702
704
|
|
|
705
|
+
# Return max attribute of a number type text field or a progress bar.
|
|
706
|
+
#
|
|
707
|
+
# @return [Integer]
|
|
708
|
+
# @example
|
|
709
|
+
# max_points_value = points_field.get_max
|
|
710
|
+
#
|
|
711
|
+
def get_max
|
|
712
|
+
obj, = find_element
|
|
713
|
+
object_not_found_exception(obj, nil)
|
|
714
|
+
max = obj.native.attribute('max')
|
|
715
|
+
unless max.blank?
|
|
716
|
+
if max.is_int?
|
|
717
|
+
max.to_i
|
|
718
|
+
elsif max.is_float?
|
|
719
|
+
max.to_f
|
|
720
|
+
else
|
|
721
|
+
max
|
|
722
|
+
end
|
|
723
|
+
end
|
|
724
|
+
end
|
|
725
|
+
|
|
703
726
|
# Return UI object's style property
|
|
704
727
|
#
|
|
705
728
|
# @return [String]
|
|
@@ -787,7 +810,14 @@ module TestCentricity
|
|
|
787
810
|
# user_grid.aria_rowcount
|
|
788
811
|
#
|
|
789
812
|
def aria_rowcount
|
|
790
|
-
get_attribute('aria-rowcount')
|
|
813
|
+
rows = get_attribute('aria-rowcount')
|
|
814
|
+
unless rows.blank?
|
|
815
|
+
if rows.is_int?
|
|
816
|
+
rows.to_i
|
|
817
|
+
else
|
|
818
|
+
rows
|
|
819
|
+
end
|
|
820
|
+
end
|
|
791
821
|
end
|
|
792
822
|
|
|
793
823
|
# Return state of UI object's aria-colcount property
|
|
@@ -797,7 +827,14 @@ module TestCentricity
|
|
|
797
827
|
# user_grid.aria_colcount
|
|
798
828
|
#
|
|
799
829
|
def aria_colcount
|
|
800
|
-
get_attribute('aria-colcount')
|
|
830
|
+
cols = get_attribute('aria-colcount')
|
|
831
|
+
unless cols.blank?
|
|
832
|
+
if cols.is_int?
|
|
833
|
+
cols.to_i
|
|
834
|
+
else
|
|
835
|
+
cols
|
|
836
|
+
end
|
|
837
|
+
end
|
|
801
838
|
end
|
|
802
839
|
|
|
803
840
|
# Return state of UI object's aria-valuemax property
|
|
@@ -807,7 +844,16 @@ module TestCentricity
|
|
|
807
844
|
# volume_slider.aria_valuemax
|
|
808
845
|
#
|
|
809
846
|
def aria_valuemax
|
|
810
|
-
get_attribute('aria-valuemax')
|
|
847
|
+
max = get_attribute('aria-valuemax')
|
|
848
|
+
unless max.blank?
|
|
849
|
+
if max.is_int?
|
|
850
|
+
max.to_i
|
|
851
|
+
elsif max.is_float?
|
|
852
|
+
max.to_f
|
|
853
|
+
else
|
|
854
|
+
max
|
|
855
|
+
end
|
|
856
|
+
end
|
|
811
857
|
end
|
|
812
858
|
|
|
813
859
|
# Return state of UI object's aria-valuemin property
|
|
@@ -817,7 +863,16 @@ module TestCentricity
|
|
|
817
863
|
# volume_slider.aria_valuemin
|
|
818
864
|
#
|
|
819
865
|
def aria_valuemin
|
|
820
|
-
get_attribute('aria-valuemin')
|
|
866
|
+
min = get_attribute('aria-valuemin')
|
|
867
|
+
unless min.blank?
|
|
868
|
+
if min.is_int?
|
|
869
|
+
min.to_i
|
|
870
|
+
elsif min.is_float?
|
|
871
|
+
min.to_f
|
|
872
|
+
else
|
|
873
|
+
min
|
|
874
|
+
end
|
|
875
|
+
end
|
|
821
876
|
end
|
|
822
877
|
|
|
823
878
|
# Return state of UI object's aria-valuenow property
|
|
@@ -827,12 +882,21 @@ module TestCentricity
|
|
|
827
882
|
# volume_slider.aria_valuenow
|
|
828
883
|
#
|
|
829
884
|
def aria_valuenow
|
|
830
|
-
get_attribute('aria-valuenow')
|
|
885
|
+
result = get_attribute('aria-valuenow')
|
|
886
|
+
unless result.blank?
|
|
887
|
+
if result.is_int?
|
|
888
|
+
result.to_i
|
|
889
|
+
elsif result.is_float?
|
|
890
|
+
result.to_f
|
|
891
|
+
else
|
|
892
|
+
result
|
|
893
|
+
end
|
|
894
|
+
end
|
|
831
895
|
end
|
|
832
896
|
|
|
833
897
|
# Return state of UI object's aria-valuetext property
|
|
834
898
|
#
|
|
835
|
-
# @return [
|
|
899
|
+
# @return [String]
|
|
836
900
|
# @example
|
|
837
901
|
# volume_slider.aria_valuetext
|
|
838
902
|
#
|
|
@@ -842,7 +906,7 @@ module TestCentricity
|
|
|
842
906
|
|
|
843
907
|
# Return state of UI object's aria-orientation property
|
|
844
908
|
#
|
|
845
|
-
# @return [
|
|
909
|
+
# @return [String]
|
|
846
910
|
# @example
|
|
847
911
|
# volume_slider.aria_orientation
|
|
848
912
|
#
|
|
@@ -852,7 +916,7 @@ module TestCentricity
|
|
|
852
916
|
|
|
853
917
|
# Return state of UI object's aria-keyshortcuts property
|
|
854
918
|
#
|
|
855
|
-
# @return [
|
|
919
|
+
# @return [String]
|
|
856
920
|
# @example
|
|
857
921
|
# play_button.aria_keyshortcuts
|
|
858
922
|
#
|
|
@@ -862,7 +926,7 @@ module TestCentricity
|
|
|
862
926
|
|
|
863
927
|
# Return state of UI object's aria-roledescription property
|
|
864
928
|
#
|
|
865
|
-
# @return [
|
|
929
|
+
# @return [String]
|
|
866
930
|
# @example
|
|
867
931
|
# editor_button.aria_roledescription
|
|
868
932
|
#
|
|
@@ -872,7 +936,7 @@ module TestCentricity
|
|
|
872
936
|
|
|
873
937
|
# Return state of UI object's aria-autocomplete property
|
|
874
938
|
#
|
|
875
|
-
# @return [
|
|
939
|
+
# @return [Boolean]
|
|
876
940
|
# @example
|
|
877
941
|
# email_field.aria_autocomplete
|
|
878
942
|
#
|
|
@@ -882,7 +946,7 @@ module TestCentricity
|
|
|
882
946
|
|
|
883
947
|
# Return state of UI object's aria-controls property
|
|
884
948
|
#
|
|
885
|
-
# @return [
|
|
949
|
+
# @return [String]
|
|
886
950
|
# @example
|
|
887
951
|
# video_menu.aria_controls
|
|
888
952
|
#
|
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: 4.6.
|
|
4
|
+
version: 4.6.9
|
|
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: 2025-10-
|
|
11
|
+
date: 2025-10-31 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: bundler
|
|
@@ -142,14 +142,14 @@ dependencies:
|
|
|
142
142
|
requirements:
|
|
143
143
|
- - "~>"
|
|
144
144
|
- !ruby/object:Gem::Version
|
|
145
|
-
version: 4.
|
|
145
|
+
version: 4.38.0
|
|
146
146
|
type: :development
|
|
147
147
|
prerelease: false
|
|
148
148
|
version_requirements: !ruby/object:Gem::Requirement
|
|
149
149
|
requirements:
|
|
150
150
|
- - "~>"
|
|
151
151
|
- !ruby/object:Gem::Version
|
|
152
|
-
version: 4.
|
|
152
|
+
version: 4.38.0
|
|
153
153
|
- !ruby/object:Gem::Dependency
|
|
154
154
|
name: simplecov
|
|
155
155
|
requirement: !ruby/object:Gem::Requirement
|