testcentricity_web 4.6.7 → 4.6.8
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 +19 -0
- data/README.md +9 -6
- data/lib/testcentricity_web/version.rb +1 -1
- data/lib/testcentricity_web/web_core/page_objects_helper.rb +38 -32
- data/lib/testcentricity_web/web_elements/table.rb +22 -14
- data/lib/testcentricity_web/web_elements/ui_element.rb +52 -11
- metadata +2 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 0bd441ac4c410c391d2f47f947930172f688ca34f46da359424326d0e8c61f93
|
|
4
|
+
data.tar.gz: 91f94ef91ba8cda3556c95997942e6af2c944435db0773a8628fc203a96ad6cc
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 58069c08c76b9a85ed210e065e33e1eb247e1eaf5f38b7668ae651af5d5e80b41f7f0225536d80af82677472af2f0893bdd908be205f31da4544416b1c7ef2a6
|
|
7
|
+
data.tar.gz: cb214a4773d6e611114502f6290ef7312fc8204474103b4454903b7a3ddb771fd8e512b9f2c731b6be33c5e3165432d6f80f94977476ef5642f66e9c2d309a0c
|
data/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,25 @@
|
|
|
2
2
|
All notable changes to this project will be documented in this file.
|
|
3
3
|
|
|
4
4
|
|
|
5
|
+
## [4.6.8] - 27-OCT-2025
|
|
6
|
+
|
|
7
|
+
### Changed
|
|
8
|
+
|
|
9
|
+
* `UIElement.aria_valuemax`, `UIElement.aria_valuemin`, and `UIElement.aria_valuenow` now return `Integer` or `Float`
|
|
10
|
+
instead of `String` result.
|
|
11
|
+
* `UIElement.aria_rowcount` and `UIElement.aria_colcount` now return `Integer` instead of `String` result.
|
|
12
|
+
|
|
13
|
+
### Added
|
|
14
|
+
* Updated `PageObject.verify_ui_states` and `PageSection.verify_ui_states` methods to support verification of the following
|
|
15
|
+
`Table` properties:
|
|
16
|
+
* `:cell_attribute`
|
|
17
|
+
* `:row_attribute`
|
|
18
|
+
* `:aria_rowindex`
|
|
19
|
+
|
|
20
|
+
### Fixed
|
|
21
|
+
* `Table.get_row_data` and `Table.get_row_attribute` methods now return data for row 1 instead of `nil`.
|
|
22
|
+
|
|
23
|
+
|
|
5
24
|
## [4.6.7] - 21-OCT-2025
|
|
6
25
|
|
|
7
26
|
### Added
|
data/README.md
CHANGED
|
@@ -781,12 +781,15 @@ 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
|
-
:cell
|
|
788
|
-
:row
|
|
789
|
-
:column
|
|
784
|
+
:rowcount Integer
|
|
785
|
+
:columncount Integer
|
|
786
|
+
:columnheaders Array of String
|
|
787
|
+
:cell Hash
|
|
788
|
+
:row Hash
|
|
789
|
+
:column Hash
|
|
790
|
+
:cell_attribute Integer, Float, or String
|
|
791
|
+
:row_attribute Integer, Float, or String
|
|
792
|
+
:aria_rowindex Integer
|
|
790
793
|
|
|
791
794
|
**Audio/Video Media Objects**
|
|
792
795
|
|
|
@@ -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
|
|
@@ -177,19 +175,43 @@ module TestCentricity
|
|
|
177
175
|
ui_object.style
|
|
178
176
|
when :href
|
|
179
177
|
ui_object.href
|
|
178
|
+
when :content_editable
|
|
179
|
+
ui_object.content_editable?
|
|
180
180
|
when :role
|
|
181
181
|
ui_object.role
|
|
182
182
|
when :aria_disabled
|
|
183
183
|
ui_object.aria_disabled?
|
|
184
|
-
# :nocov:
|
|
185
|
-
when :count_all
|
|
186
|
-
ui_object.count(visible = :all)
|
|
187
184
|
when :aria_label
|
|
188
185
|
ui_object.aria_label
|
|
189
|
-
when :tabindex
|
|
190
|
-
ui_object.tabindex
|
|
191
186
|
when :aria_labelledby
|
|
192
187
|
ui_object.aria_labelledby
|
|
188
|
+
when :aria_required
|
|
189
|
+
ui_object.aria_required?
|
|
190
|
+
when :aria_checked
|
|
191
|
+
ui_object.aria_checked?
|
|
192
|
+
when :aria_readonly
|
|
193
|
+
ui_object.aria_readonly?
|
|
194
|
+
when :aria_rowcount
|
|
195
|
+
ui_object.aria_rowcount
|
|
196
|
+
when :aria_colcount
|
|
197
|
+
ui_object.aria_colcount
|
|
198
|
+
when :aria_valuemax
|
|
199
|
+
ui_object.aria_valuemax
|
|
200
|
+
when :aria_valuemin
|
|
201
|
+
ui_object.aria_valuemin
|
|
202
|
+
when :aria_valuenow
|
|
203
|
+
ui_object.aria_valuenow
|
|
204
|
+
when :aria_orientation
|
|
205
|
+
ui_object.aria_orientation
|
|
206
|
+
when :aria_multiline
|
|
207
|
+
ui_object.aria_multiline?
|
|
208
|
+
when :aria_multiselectable
|
|
209
|
+
ui_object.aria_multiselectable?
|
|
210
|
+
# :nocov:
|
|
211
|
+
when :count_all
|
|
212
|
+
ui_object.count(visible = :all)
|
|
213
|
+
when :tabindex
|
|
214
|
+
ui_object.tabindex
|
|
193
215
|
when :aria_describedby
|
|
194
216
|
ui_object.aria_describedby
|
|
195
217
|
when :aria_live
|
|
@@ -202,34 +224,16 @@ module TestCentricity
|
|
|
202
224
|
ui_object.aria_hidden?
|
|
203
225
|
when :aria_expanded
|
|
204
226
|
ui_object.aria_expanded?
|
|
205
|
-
|
|
206
|
-
ui_object.aria_required?
|
|
207
|
-
when :aria_invalid
|
|
227
|
+
when :aria_invalid
|
|
208
228
|
ui_object.aria_invalid?
|
|
209
|
-
when :aria_checked
|
|
210
|
-
ui_object.aria_checked?
|
|
211
|
-
when :aria_readonly
|
|
212
|
-
ui_object.aria_readonly?
|
|
213
229
|
when :aria_pressed
|
|
214
230
|
ui_object.aria_pressed?
|
|
215
231
|
when :aria_haspopup
|
|
216
232
|
ui_object.aria_haspopup?
|
|
217
233
|
when :aria_sort
|
|
218
234
|
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
235
|
when :aria_valuetext
|
|
230
236
|
ui_object.aria_valuetext
|
|
231
|
-
when :aria_orientation
|
|
232
|
-
ui_object.aria_orientation
|
|
233
237
|
when :aria_keyshortcuts
|
|
234
238
|
ui_object.aria_keyshortcuts
|
|
235
239
|
when :aria_roledescription
|
|
@@ -240,12 +244,8 @@ module TestCentricity
|
|
|
240
244
|
ui_object.aria_controls
|
|
241
245
|
when :aria_modal
|
|
242
246
|
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?
|
|
247
|
+
when :crossorigin
|
|
248
|
+
ui_object.crossorigin
|
|
249
249
|
# :nocov:
|
|
250
250
|
when :validation_message
|
|
251
251
|
ui_object.validation_message
|
|
@@ -287,6 +287,12 @@ module TestCentricity
|
|
|
287
287
|
ui_object.get_attribute(value)
|
|
288
288
|
when :native_attribute
|
|
289
289
|
ui_object.get_native_attribute(value)
|
|
290
|
+
when :cell_attribute
|
|
291
|
+
ui_object.get_cell_attribute(value[0].to_i, value[1].to_i, value[2])
|
|
292
|
+
when :row_attribute
|
|
293
|
+
ui_object.get_row_attribute(value[0].to_i, value[1])
|
|
294
|
+
when :aria_rowindex
|
|
295
|
+
ui_object.get_row_attribute(value.to_i, 'aria-rowindex')
|
|
290
296
|
else
|
|
291
297
|
raise "#{key} is not a valid property key"
|
|
292
298
|
end
|
|
@@ -317,13 +317,9 @@ module TestCentricity
|
|
|
317
317
|
raise "Row #{row} exceeds number of rows (#{row_count}) in table #{object_ref_message}" if row > row_count
|
|
318
318
|
case @locator_type
|
|
319
319
|
when :xpath
|
|
320
|
-
row
|
|
321
|
-
set_alt_locator("#{@locator}/#{@table_body}/#{@table_row}[#{row}]") :
|
|
322
|
-
set_alt_locator("#{@locator}/#{@table_body}/#{@table_row}")
|
|
320
|
+
set_alt_locator("#{@locator}/#{@table_body}/#{@table_row}[#{row}]")
|
|
323
321
|
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}")
|
|
322
|
+
set_alt_locator("#{@locator} > #{@table_body} > #{@table_row}:nth-of-type(#{row})")
|
|
327
323
|
end
|
|
328
324
|
value = get_value if exists?
|
|
329
325
|
clear_alt_locator
|
|
@@ -431,7 +427,15 @@ module TestCentricity
|
|
|
431
427
|
set_table_cell_locator(row, column)
|
|
432
428
|
result = get_native_attribute(attrib)
|
|
433
429
|
clear_alt_locator
|
|
434
|
-
result
|
|
430
|
+
unless result.blank?
|
|
431
|
+
if result.is_int?
|
|
432
|
+
result.to_i
|
|
433
|
+
elsif result.is_float?
|
|
434
|
+
result.to_f
|
|
435
|
+
else
|
|
436
|
+
result
|
|
437
|
+
end
|
|
438
|
+
end
|
|
435
439
|
end
|
|
436
440
|
|
|
437
441
|
def get_row_attribute(row, attrib)
|
|
@@ -439,17 +443,21 @@ module TestCentricity
|
|
|
439
443
|
raise "Row #{row} exceeds number of rows (#{row_count}) in table #{object_ref_message}" if row > row_count
|
|
440
444
|
case @locator_type
|
|
441
445
|
when :xpath
|
|
442
|
-
row
|
|
443
|
-
set_alt_locator("#{@locator}/#{@table_body}/#{@table_row}[#{row}]") :
|
|
444
|
-
set_alt_locator("#{@locator}/#{@table_body}/#{@table_row}")
|
|
446
|
+
set_alt_locator("#{@locator}/#{@table_body}/#{@table_row}[#{row}]")
|
|
445
447
|
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}")
|
|
448
|
+
set_alt_locator("#{@locator} > #{@table_body} > #{@table_row}:nth-of-type(#{row})")
|
|
449
449
|
end
|
|
450
450
|
result = get_native_attribute(attrib)
|
|
451
451
|
clear_alt_locator
|
|
452
|
-
result
|
|
452
|
+
unless result.blank?
|
|
453
|
+
if result.is_int?
|
|
454
|
+
result.to_i
|
|
455
|
+
elsif result.is_float?
|
|
456
|
+
result.to_f
|
|
457
|
+
else
|
|
458
|
+
result
|
|
459
|
+
end
|
|
460
|
+
end
|
|
453
461
|
end
|
|
454
462
|
|
|
455
463
|
def find_row_attribute(attrib, search_value)
|
|
@@ -787,7 +787,14 @@ module TestCentricity
|
|
|
787
787
|
# user_grid.aria_rowcount
|
|
788
788
|
#
|
|
789
789
|
def aria_rowcount
|
|
790
|
-
get_attribute('aria-rowcount')
|
|
790
|
+
rows = get_attribute('aria-rowcount')
|
|
791
|
+
unless rows.blank?
|
|
792
|
+
if rows.is_int?
|
|
793
|
+
rows.to_i
|
|
794
|
+
else
|
|
795
|
+
rows
|
|
796
|
+
end
|
|
797
|
+
end
|
|
791
798
|
end
|
|
792
799
|
|
|
793
800
|
# Return state of UI object's aria-colcount property
|
|
@@ -797,7 +804,14 @@ module TestCentricity
|
|
|
797
804
|
# user_grid.aria_colcount
|
|
798
805
|
#
|
|
799
806
|
def aria_colcount
|
|
800
|
-
get_attribute('aria-colcount')
|
|
807
|
+
cols = get_attribute('aria-colcount')
|
|
808
|
+
unless cols.blank?
|
|
809
|
+
if cols.is_int?
|
|
810
|
+
cols.to_i
|
|
811
|
+
else
|
|
812
|
+
cols
|
|
813
|
+
end
|
|
814
|
+
end
|
|
801
815
|
end
|
|
802
816
|
|
|
803
817
|
# Return state of UI object's aria-valuemax property
|
|
@@ -807,7 +821,16 @@ module TestCentricity
|
|
|
807
821
|
# volume_slider.aria_valuemax
|
|
808
822
|
#
|
|
809
823
|
def aria_valuemax
|
|
810
|
-
get_attribute('aria-valuemax')
|
|
824
|
+
max = get_attribute('aria-valuemax')
|
|
825
|
+
unless max.blank?
|
|
826
|
+
if max.is_int?
|
|
827
|
+
max.to_i
|
|
828
|
+
elsif max.is_float?
|
|
829
|
+
max.to_f
|
|
830
|
+
else
|
|
831
|
+
max
|
|
832
|
+
end
|
|
833
|
+
end
|
|
811
834
|
end
|
|
812
835
|
|
|
813
836
|
# Return state of UI object's aria-valuemin property
|
|
@@ -817,7 +840,16 @@ module TestCentricity
|
|
|
817
840
|
# volume_slider.aria_valuemin
|
|
818
841
|
#
|
|
819
842
|
def aria_valuemin
|
|
820
|
-
get_attribute('aria-valuemin')
|
|
843
|
+
min = get_attribute('aria-valuemin')
|
|
844
|
+
unless min.blank?
|
|
845
|
+
if min.is_int?
|
|
846
|
+
min.to_i
|
|
847
|
+
elsif min.is_float?
|
|
848
|
+
min.to_f
|
|
849
|
+
else
|
|
850
|
+
min
|
|
851
|
+
end
|
|
852
|
+
end
|
|
821
853
|
end
|
|
822
854
|
|
|
823
855
|
# Return state of UI object's aria-valuenow property
|
|
@@ -827,12 +859,21 @@ module TestCentricity
|
|
|
827
859
|
# volume_slider.aria_valuenow
|
|
828
860
|
#
|
|
829
861
|
def aria_valuenow
|
|
830
|
-
get_attribute('aria-valuenow')
|
|
862
|
+
result = get_attribute('aria-valuenow')
|
|
863
|
+
unless result.blank?
|
|
864
|
+
if result.is_int?
|
|
865
|
+
result.to_i
|
|
866
|
+
elsif result.is_float?
|
|
867
|
+
result.to_f
|
|
868
|
+
else
|
|
869
|
+
result
|
|
870
|
+
end
|
|
871
|
+
end
|
|
831
872
|
end
|
|
832
873
|
|
|
833
874
|
# Return state of UI object's aria-valuetext property
|
|
834
875
|
#
|
|
835
|
-
# @return [
|
|
876
|
+
# @return [String]
|
|
836
877
|
# @example
|
|
837
878
|
# volume_slider.aria_valuetext
|
|
838
879
|
#
|
|
@@ -842,7 +883,7 @@ module TestCentricity
|
|
|
842
883
|
|
|
843
884
|
# Return state of UI object's aria-orientation property
|
|
844
885
|
#
|
|
845
|
-
# @return [
|
|
886
|
+
# @return [String]
|
|
846
887
|
# @example
|
|
847
888
|
# volume_slider.aria_orientation
|
|
848
889
|
#
|
|
@@ -852,7 +893,7 @@ module TestCentricity
|
|
|
852
893
|
|
|
853
894
|
# Return state of UI object's aria-keyshortcuts property
|
|
854
895
|
#
|
|
855
|
-
# @return [
|
|
896
|
+
# @return [String]
|
|
856
897
|
# @example
|
|
857
898
|
# play_button.aria_keyshortcuts
|
|
858
899
|
#
|
|
@@ -862,7 +903,7 @@ module TestCentricity
|
|
|
862
903
|
|
|
863
904
|
# Return state of UI object's aria-roledescription property
|
|
864
905
|
#
|
|
865
|
-
# @return [
|
|
906
|
+
# @return [String]
|
|
866
907
|
# @example
|
|
867
908
|
# editor_button.aria_roledescription
|
|
868
909
|
#
|
|
@@ -872,7 +913,7 @@ module TestCentricity
|
|
|
872
913
|
|
|
873
914
|
# Return state of UI object's aria-autocomplete property
|
|
874
915
|
#
|
|
875
|
-
# @return [
|
|
916
|
+
# @return [Boolean]
|
|
876
917
|
# @example
|
|
877
918
|
# email_field.aria_autocomplete
|
|
878
919
|
#
|
|
@@ -882,7 +923,7 @@ module TestCentricity
|
|
|
882
923
|
|
|
883
924
|
# Return state of UI object's aria-controls property
|
|
884
925
|
#
|
|
885
|
-
# @return [
|
|
926
|
+
# @return [String]
|
|
886
927
|
# @example
|
|
887
928
|
# video_menu.aria_controls
|
|
888
929
|
#
|
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.8
|
|
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-25 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: bundler
|