testcentricity_web 4.1.10 → 4.2.6

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.
Files changed (114) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +75 -1
  3. data/README.md +73 -35
  4. data/lib/testcentricity_web/data_objects/environment.rb +0 -1
  5. data/lib/testcentricity_web/version.rb +1 -1
  6. data/lib/testcentricity_web/web_core/page_objects_helper.rb +39 -2
  7. data/lib/testcentricity_web/web_core/webdriver_helper.rb +67 -61
  8. data/lib/testcentricity_web/web_elements/media.rb +108 -0
  9. data/lib/testcentricity_web/web_elements/textfield.rb +28 -0
  10. data/lib/testcentricity_web/web_elements/ui_elements_helper.rb +39 -1
  11. metadata +6 -150
  12. data/.gitignore +0 -39
  13. data/.idea/.name +0 -1
  14. data/.idea/encodings.xml +0 -6
  15. data/.idea/misc.xml +0 -4
  16. data/.idea/modules.xml +0 -8
  17. data/.idea/vcs.xml +0 -7
  18. data/.rspec +0 -4
  19. data/.rubocop.yml +0 -38
  20. data/.ruby-version +0 -1
  21. data/.simplecov +0 -9
  22. data/CODE_OF_CONDUCT.md +0 -13
  23. data/Gemfile +0 -6
  24. data/Rakefile +0 -115
  25. data/config/cucumber.yml +0 -171
  26. data/config/locales/en-US.yml +0 -56
  27. data/config/test_data/LOCAL_data.json +0 -15
  28. data/config/test_data/LOCAL_data.xls +0 -0
  29. data/config/test_data/LOCAL_data.yml +0 -11
  30. data/config/test_data/data.json +0 -25
  31. data/config/test_data/data.xls +0 -0
  32. data/config/test_data/data.yml +0 -20
  33. data/docker-compose.yml +0 -48
  34. data/features/basic_form_page_css.feature +0 -54
  35. data/features/basic_form_page_xpath.feature +0 -26
  36. data/features/custom_controls.feature +0 -29
  37. data/features/media_players.feature +0 -67
  38. data/features/step_definitions/generic_steps.rb.rb +0 -124
  39. data/features/step_definitions/media_steps.rb +0 -30
  40. data/features/support/data/form_data.rb +0 -43
  41. data/features/support/env.rb +0 -53
  42. data/features/support/hooks.rb +0 -270
  43. data/features/support/pages/base_test_page.rb +0 -22
  44. data/features/support/pages/basic_css_form_page.rb +0 -57
  45. data/features/support/pages/basic_form_page.rb +0 -500
  46. data/features/support/pages/basic_xpath_form_page.rb +0 -58
  47. data/features/support/pages/custom_controls_page.rb +0 -263
  48. data/features/support/pages/indexed_sections_page.rb +0 -57
  49. data/features/support/pages/media_test_page.rb +0 -207
  50. data/features/support/sections/header_nav.rb +0 -48
  51. data/features/support/sections/product_card.rb +0 -39
  52. data/features/support/world_data.rb +0 -12
  53. data/features/support/world_pages.rb +0 -18
  54. data/reports/.keep +0 -1
  55. data/spec/fixtures/page_object.rb +0 -22
  56. data/spec/fixtures/section_object.rb +0 -21
  57. data/spec/spec_helper.rb +0 -33
  58. data/spec/testcentricity_web/browser_spec.rb +0 -41
  59. data/spec/testcentricity_web/elements/audio_spec.rb +0 -68
  60. data/spec/testcentricity_web/elements/button_spec.rb +0 -18
  61. data/spec/testcentricity_web/elements/checkbox_spec.rb +0 -33
  62. data/spec/testcentricity_web/elements/file_field_spec.rb +0 -13
  63. data/spec/testcentricity_web/elements/image_spec.rb +0 -33
  64. data/spec/testcentricity_web/elements/label_spec.rb +0 -18
  65. data/spec/testcentricity_web/elements/link_spec.rb +0 -23
  66. data/spec/testcentricity_web/elements/list_spec.rb +0 -13
  67. data/spec/testcentricity_web/elements/radio_spec.rb +0 -28
  68. data/spec/testcentricity_web/elements/ui_element_spec.rb +0 -125
  69. data/spec/testcentricity_web/elements/video_spec.rb +0 -68
  70. data/spec/testcentricity_web/helper_specs/object_helpers_spec.rb +0 -39
  71. data/spec/testcentricity_web/helper_specs/string_helpers_spec.rb +0 -49
  72. data/spec/testcentricity_web/page_object_spec.rb +0 -90
  73. data/spec/testcentricity_web/section_object_spec.rb +0 -72
  74. data/spec/testcentricity_web/version_spec.rb +0 -7
  75. data/spec/testcentricity_web/webdriver_connect/grid_webdriver_spec.rb +0 -72
  76. data/spec/testcentricity_web/webdriver_connect/local_webdriver_spec.rb +0 -86
  77. data/spec/testcentricity_web/webdriver_connect/mobile_webdriver_spec.rb +0 -65
  78. data/test_site/basic_test_page.html +0 -269
  79. data/test_site/chosen/chosen-sprite.png +0 -0
  80. data/test_site/chosen/chosen-sprite@2x.png +0 -0
  81. data/test_site/chosen/chosen.css +0 -496
  82. data/test_site/chosen/chosen.jquery.js +0 -1359
  83. data/test_site/chosen/chosen.jquery.min.js +0 -3
  84. data/test_site/chosen/chosen.min.css +0 -11
  85. data/test_site/chosen/chosen.proto.js +0 -1399
  86. data/test_site/chosen/chosen.proto.min.js +0 -3
  87. data/test_site/chosen/composer.json +0 -36
  88. data/test_site/custom_controls_page.html +0 -629
  89. data/test_site/docsupport/chosen.png +0 -0
  90. data/test_site/docsupport/init.js +0 -11
  91. data/test_site/docsupport/init.proto.js +0 -16
  92. data/test_site/docsupport/jquery-1.12.4.min.js +0 -5
  93. data/test_site/docsupport/jquery-3.2.1.min.js +0 -4
  94. data/test_site/docsupport/oss-credit.png +0 -0
  95. data/test_site/docsupport/prism.css +0 -108
  96. data/test_site/docsupport/prism.js +0 -9
  97. data/test_site/docsupport/prototype-1.7.0.0.js +0 -6082
  98. data/test_site/docsupport/style.css +0 -219
  99. data/test_site/images/Blouse_Black.jpg +0 -0
  100. data/test_site/images/Granny.jpg +0 -0
  101. data/test_site/images/Printed_Dress.jpg +0 -0
  102. data/test_site/images/T-shirt.jpg +0 -0
  103. data/test_site/images/Wilder.jpg +0 -0
  104. data/test_site/images/You_Betcha.jpg +0 -0
  105. data/test_site/images/jeans3.jpg +0 -0
  106. data/test_site/indexed_sections_page.html +0 -215
  107. data/test_site/media/MIB2-subtitles-pt-BR.vtt +0 -49
  108. data/test_site/media/MIB2.mp4 +0 -0
  109. data/test_site/media/MP4_small.mp4 +0 -0
  110. data/test_site/media/MPS_sample.mp3 +0 -0
  111. data/test_site/media/bbc_scotland_report.mp3 +0 -0
  112. data/test_site/media/count_and_bars.mp4 +0 -0
  113. data/test_site/media_page.html +0 -86
  114. data/testcentricity_web.gemspec +0 -59
@@ -1,500 +0,0 @@
1
- # Page Object class definition for Basic HTML Form page
2
-
3
- class BasicFormPage < BaseTestPage
4
- trait(:page_url) { '/basic_test_page.html' }
5
- trait(:navigator) { header_nav.open_form_page }
6
- trait(:page_title) { 'Basic HTML Form'}
7
- trait(:tab_order) {
8
- [
9
- header_nav.form_link,
10
- header_nav.media_link,
11
- header_nav.indexed_sections_link,
12
- header_nav.custom_controls_link,
13
- username_field,
14
- password_field,
15
- max_length_field,
16
- read_only_field,
17
- number_field,
18
- date_field,
19
- date_time_field,
20
- email_field,
21
- month_field,
22
- color_picker,
23
- slider,
24
- comments_field,
25
- upload_file,
26
- check_1,
27
- check_2,
28
- check_3,
29
- radio_1,
30
- [
31
- radio_2,
32
- radio_3
33
- ],
34
- multi_select,
35
- drop_down_select,
36
- link_1,
37
- link_2,
38
- cancel_button,
39
- submit_button
40
- ]
41
- }
42
- trait(:chrome_tab_order) {
43
- [
44
- header_nav.form_link,
45
- header_nav.media_link,
46
- header_nav.indexed_sections_link,
47
- header_nav.custom_controls_link,
48
- username_field,
49
- password_field,
50
- max_length_field,
51
- read_only_field,
52
- number_field,
53
- date_field,
54
- date_field,
55
- date_field,
56
- date_time_field,
57
- date_time_field,
58
- date_time_field,
59
- date_time_field,
60
- date_time_field,
61
- date_time_field,
62
- email_field,
63
- month_field,
64
- month_field,
65
- color_picker,
66
- slider,
67
- comments_field,
68
- upload_file,
69
- check_1,
70
- check_2,
71
- check_3,
72
- radio_1,
73
- [
74
- radio_2,
75
- radio_3
76
- ],
77
- multi_select,
78
- drop_down_select,
79
- link_1,
80
- link_2,
81
- cancel_button,
82
- submit_button
83
- ]
84
- }
85
- trait(:firefox_order) {
86
- [
87
- username_field,
88
- password_field,
89
- max_length_field,
90
- read_only_field,
91
- number_field,
92
- date_field,
93
- date_field,
94
- date_field,
95
- date_time_field,
96
- date_time_field,
97
- date_time_field,
98
- date_time_field,
99
- date_time_field,
100
- date_time_field,
101
- email_field,
102
- month_field,
103
- color_picker,
104
- slider,
105
- comments_field,
106
- upload_file,
107
- check_1,
108
- check_2,
109
- check_3,
110
- radio_1,
111
- [
112
- radio_2,
113
- radio_3
114
- ],
115
- multi_select,
116
- drop_down_select,
117
- cancel_button,
118
- submit_button
119
- ]
120
- }
121
- trait(:safari_tab_order) {
122
- [
123
- username_field,
124
- password_field,
125
- max_length_field,
126
- read_only_field,
127
- number_field,
128
- date_field,
129
- date_field,
130
- date_field,
131
- date_time_field,
132
- date_time_field,
133
- date_time_field,
134
- date_time_field,
135
- date_time_field,
136
- date_time_field,
137
- email_field,
138
- month_field,
139
- comments_field,
140
- multi_select,
141
- drop_down_select
142
- ]
143
- }
144
-
145
- def verify_page_ui
146
- super
147
-
148
- verify_page_contains(page_title)
149
- image_1.wait_until_loaded(5)
150
- username_field.scroll_to(:center) if username_field.obscured?
151
- ui = {
152
- username_label => { visible: true, caption: 'Username:' },
153
- username_field => {
154
- name: 'username',
155
- exists: true,
156
- displayed: true,
157
- obscured: false,
158
- visible: true,
159
- hidden: false,
160
- enabled: true,
161
- disabled: false,
162
- required: true,
163
- value: '',
164
- placeholder: 'User name'
165
- },
166
- password_label => { visible: true, caption: 'Password:' },
167
- password_field => {
168
- name: 'password',
169
- visible: true,
170
- displayed: true,
171
- obscured: false,
172
- focused: false,
173
- enabled: true,
174
- required: true,
175
- value: '',
176
- placeholder: 'Password'
177
- },
178
- max_length_label => { visible: true, caption: 'Max Length:' },
179
- max_length_field => {
180
- visible: true,
181
- obscured: false,
182
- enabled: true,
183
- focused: false,
184
- placeholder: 'up to 64 characters',
185
- value: '',
186
- maxlength: 64
187
- },
188
- read_only_label => { visible: true, caption: 'Read Only:' },
189
- read_only_field => {
190
- visible: true,
191
- enabled: true,
192
- readonly: true,
193
- value: 'I am a read only text field'
194
- },
195
- number_label => { visible: true, caption: 'Number:' },
196
- number_field => {
197
- visible: true,
198
- enabled: true,
199
- value: '41',
200
- min: 10,
201
- max: 1024,
202
- step: 1
203
- },
204
- color_label => { visible: true, caption: 'Color:' },
205
- color_picker => { visible: true, enabled: true, value: '#000000' },
206
- slider_label => { visible: true, caption: 'Range:' },
207
- slider => {
208
- visible: true,
209
- enabled: true,
210
- value: 25,
211
- min: 0,
212
- max: 50,
213
- },
214
- comments_label => { visible: true, caption: 'TextArea:' },
215
- comments_field => { visible: true, enabled: true, value: '' },
216
- filename_label => { visible: true, caption: 'Filename:' },
217
- upload_file => { visible: true, enabled: true, value: '' },
218
- checkboxes_label => { visible: true, caption: 'Checkbox Items:' },
219
- check_1 => {
220
- exists: true,
221
- visible: true,
222
- hidden: false,
223
- enabled: true,
224
- disabled: false,
225
- checked: false,
226
- indeterminate: false
227
- },
228
- check_2 => {
229
- exists: true,
230
- visible: true,
231
- hidden: false,
232
- enabled: true,
233
- disabled: false,
234
- checked: false,
235
- indeterminate: false
236
- },
237
- check_3 => {
238
- exists: true,
239
- visible: true,
240
- hidden: false,
241
- enabled: true,
242
- disabled: false,
243
- checked: false,
244
- indeterminate: false
245
- },
246
- check_4 => {
247
- exists: true,
248
- visible: true,
249
- hidden: false,
250
- enabled: false,
251
- disabled: true,
252
- checked: false,
253
- indeterminate: false
254
- },
255
- radios_label => { visible: true, caption: 'Radio Items:' },
256
- radio_1 => {
257
- exists: true,
258
- visible: true,
259
- hidden: false,
260
- enabled: true,
261
- disabled: false,
262
- selected: false
263
- },
264
- radio_2 => {
265
- exists: true,
266
- visible: true,
267
- hidden: false,
268
- enabled: true,
269
- disabled: false,
270
- selected: false
271
- },
272
- radio_3 => {
273
- exists: true,
274
- visible: true,
275
- hidden: false,
276
- enabled: true,
277
- disabled: false,
278
- selected: false
279
- },
280
- radio_4 => {
281
- exists: true,
282
- visible: true,
283
- hidden: false,
284
- enabled: false,
285
- disabled: true,
286
- selected: false
287
- },
288
- multiselect_label => { visible: true, caption: 'Multiple Select Values:' },
289
- multi_select => {
290
- visible: true,
291
- enabled: true,
292
- optioncount: 4,
293
- options: ['Selection Item 1', 'Selection Item 2', 'Selection Item 3', 'Selection Item 4'],
294
- selected: ''
295
- },
296
- dropdown_label => { visible: true, caption: 'Dropdown:' },
297
- drop_down_select => {
298
- visible: true,
299
- enabled: true,
300
- optioncount: 6,
301
- options: ['Drop Down Item 1', 'Drop Down Item 2', 'Drop Down Item 3', 'Drop Down Item 4', 'Drop Down Item 5', 'Drop Down Item 6'],
302
- selected: 'Drop Down Item 1'
303
- },
304
- link_label => { visible: true, caption: 'Links:' },
305
- links_list => {
306
- visible: true,
307
- enabled: true,
308
- itemcount: 3,
309
- items: ['Open Media Page in same window/tab', 'Open Media Page in a new window/tab', 'Disabled Link']
310
- },
311
- link_1 => {
312
- visible: true,
313
- href: { ends_with: 'media_page.html' },
314
- caption: 'Open Media Page in same window/tab'
315
- },
316
- link_2 => {
317
- visible: true,
318
- href: { ends_with: 'media_page.html' },
319
- caption: 'Open Media Page in a new window/tab'
320
- },
321
- link_3 => {
322
- visible: true,
323
- aria_disabled: true,
324
- role: 'link',
325
- caption: 'Disabled Link'
326
- },
327
- table_label => { visible: true, caption: 'Table:' },
328
- static_table => {
329
- visible: true,
330
- columncount: 3,
331
- rowcount: 4,
332
- column_headers: %w[Company Contact Country],
333
- { row: 1 } => [['Alfreds Futterkiste', 'Maria Anders', 'Germany']],
334
- { row: 2 } => [['Centro comercial Moctezuma', 'Francisco Chang', 'Mexico']],
335
- { row: 3 } => [['Ernst Handel', 'Roland Mendel', 'Austria']],
336
- { row: 4 } => [['Island Trading', 'Helen Bennett', 'UK']],
337
- { cell: [1, 3] } => ['Germany'],
338
- { cell: [2, 3] } => ['Mexico'],
339
- { column: 3 } => [['Germany', 'Mexico', 'Austria', 'UK']]
340
- },
341
- images_label => { visible: true, caption: 'Images:' },
342
- image_1 => {
343
- visible: true,
344
- loaded: true,
345
- broken: false,
346
- src: { ends_with: 'images/Wilder.jpg' },
347
- alt: "It's alive"
348
- },
349
- image_2 => {
350
- visible: true,
351
- loaded: true,
352
- broken: false,
353
- src: { ends_with: 'images/You_Betcha.jpg' },
354
- alt: 'You Betcha'
355
- },
356
- image_3 => {
357
- visible: true,
358
- broken: true,
359
- src: { ends_with: 'wrongname.gif' },
360
- alt: 'A broken image'
361
- },
362
- cancel_button => { visible: true, enabled: true, caption: 'Cancel' },
363
- submit_button => { visible: true, enabled: true, caption: 'Submit' }
364
- }
365
- verify_ui_states(ui)
366
- end
367
-
368
- def form_data
369
- data = form_data_source.read_form_data
370
-
371
- if Environ.platform == :mobile
372
- file_path = nil
373
- file_name = ''
374
- color_value = '#000000'
375
- else
376
- file_path = "#{Dir.pwd}/test_site/images/#{data.image_filename}"
377
- file_name = data.image_filename
378
- color_value = Faker::Color.hex_color
379
- end
380
- {
381
- username: data.username,
382
- password: data.password,
383
- maxlength: Faker::Marketing.buzzwords,
384
- number: Faker::Number.between(from: 10, to: 1024),
385
- color: color_value,
386
- slider: 50,
387
- comments: Faker::Hipster.paragraph,
388
- filepath: file_path,
389
- filename: file_name,
390
- check1: data.check1,
391
- check2: data.check2,
392
- check3: data.check3,
393
- radio_select: data.radio_select,
394
- multi_select: data.multi_select,
395
- drop_select: data.drop_down_item
396
- }
397
- end
398
-
399
- def populate_form
400
- # toggle checks and radios and verify
401
- check_2.check
402
- check_2.verify_check_state(true)
403
- check_2.uncheck
404
- check_2.verify_check_state(false)
405
- radio_2.select
406
- radio_2.unselect
407
- # populate fields and controls with externally sourced data
408
- @data = form_data
409
- fields = {
410
- username_field => @data[:username],
411
- password_field => @data[:password],
412
- max_length_field => @data[:maxlength],
413
- number_field => @data[:number],
414
- color_picker => @data[:color],
415
- slider => @data[:slider],
416
- comments_field => @data[:comments],
417
- upload_file => @data[:filepath],
418
- check_1 => @data[:check1],
419
- check_2 => @data[:check2],
420
- check_3 => @data[:check3],
421
- radio_1 => @data[:radio_select] == 1,
422
- radio_2 => @data[:radio_select] == 2,
423
- radio_3 => @data[:radio_select] == 3,
424
- multi_select => @data[:multi_select],
425
- drop_down_select => @data[:drop_select]
426
- }
427
- populate_data_fields(fields)
428
- end
429
-
430
- def verify_form_data
431
- ui = {
432
- username_field => { value: @data[:username] },
433
- password_field => { value: @data[:password] },
434
- max_length_field => { value: @data[:maxlength] },
435
- number_field => { value: @data[:number].to_s },
436
- color_picker => { value: @data[:color] },
437
- slider => { value: @data[:slider] },
438
- comments_field => { value: @data[:comments] },
439
- upload_file => { value: { ends_with: @data[:filename] } },
440
- check_1 => { checked: @data[:check1] },
441
- check_2 => { checked: @data[:check2] },
442
- check_3 => { checked: @data[:check3] },
443
- radio_1 => { selected: @data[:radio_select] == 1 },
444
- radio_2 => { selected: @data[:radio_select] == 2 },
445
- radio_3 => { selected: @data[:radio_select] == 3 },
446
- multi_select => { selected: @data[:multi_select] },
447
- drop_down_select => { selected: @data[:drop_select] }
448
- }
449
- verify_ui_states(ui)
450
- end
451
-
452
- def perform_action(action)
453
- case action
454
- when :submit
455
- submit_button.click
456
- when :cancel
457
- cancel_button.click
458
- else
459
- raise "#{action} is not a valid selector"
460
- end
461
- end
462
-
463
- def verify_tab_order
464
- order = case Environ.browser
465
- when :chrome, :chrome_headless
466
- chrome_tab_order
467
- when :safari
468
- safari_tab_order
469
- when :firefox
470
- firefox_order
471
- else
472
- tab_order
473
- end
474
- verify_focus_order(order)
475
- end
476
-
477
- def choose_options_by(method)
478
- case method.downcase.to_sym
479
- when :index
480
- multi_select.choose_option(index: 2)
481
- drop_down_select.choose_option(index: 3)
482
- when :value
483
- multi_select.choose_option(value: 'ms2')
484
- drop_down_select.choose_option(value: 'dd3')
485
- when :text
486
- multi_select.choose_option(text: 'Selection Item 2')
487
- drop_down_select.choose_option(text: 'Drop Down Item 3')
488
- else
489
- raise "#{method} is not a valid selector"
490
- end
491
- end
492
-
493
- def verify_chosen_options
494
- ui = {
495
- multi_select => { selected: 'Selection Item 2' },
496
- drop_down_select => { selected: 'Drop Down Item 3' }
497
- }
498
- verify_ui_states(ui)
499
- end
500
- end
@@ -1,58 +0,0 @@
1
- # Page Object class definition for Basic HTML Form page with Xpath locators
2
-
3
- class BasicXpathFormPage < BasicFormPage
4
- trait(:page_name) { 'Basic Xpath Form' }
5
- trait(:page_locator) { "//form[@id='HTMLFormElements']" }
6
-
7
- # Basic HTML Test page UI elements
8
- textfields username_field: "//input[@id='username']",
9
- password_field: "//input[@id='password']",
10
- max_length_field: "//input[@id='maxlength']",
11
- read_only_field: "//input[@id='readonly']",
12
- number_field: "//input[@id='number-field']",
13
- date_field: "//input[@id='date-picker']",
14
- date_time_field: "//input[@id='date-time-picker']",
15
- email_field: "//input[@id='email-field']",
16
- month_field: "//input[@id='month-field']",
17
- comments_field: "//textarea[@id='comments']",
18
- color_picker: "//input[@id='color-picker']"
19
- ranges slider: "//input[@id='slider']"
20
- filefields upload_file: "//input[@id='filename']"
21
- checkboxes check_1: "//input[@id='check1']",
22
- check_2: "//input[@id='check2']",
23
- check_3: "//input[@id='check3']",
24
- check_4: "//input[@id='check4']"
25
- radios radio_1: "//input[@id='radio1']",
26
- radio_2: "//input[@id='radio2']",
27
- radio_3: "//input[@id='radio3']",
28
- radio_4: "//input[@id='radio4']"
29
- selectlists multi_select: "//select[@id='multipleselect']",
30
- drop_down_select: "//select[@id='dropdown']"
31
- lists links_list: "//ul[@id='links_list']"
32
- links link_1: "//a[@id='link1']",
33
- link_2: "//a[@id='link2']",
34
- link_3: "//a[@id='link3']"
35
- tables static_table: "//table[@id='table']"
36
- images image_1: "//img[@id='image1']",
37
- image_2: "//img[@id='image2']",
38
- image_3: "//img[@id='image3']"
39
- buttons cancel_button: "//input[@id='cancel']",
40
- submit_button: "//input[@id='submit']"
41
- labels header_label: '//h2',
42
- username_label: "//label[@for='username']",
43
- password_label: "//label[@for='password']",
44
- max_length_label: "//label[@for='maxlength']",
45
- read_only_label: "//label[@for='readonly']",
46
- number_label: "//label[@for='number-field']",
47
- color_label: "//label[@for='color-picker']",
48
- slider_label: "//label[@for='slider']",
49
- comments_label: "//label[@for='comments']",
50
- filename_label: "//label[@for='filename']",
51
- checkboxes_label: "//label[@id='checkboxes']",
52
- radios_label: "//label[@id='radios']",
53
- multiselect_label: "//label[@for='multipleselect']",
54
- dropdown_label: "//label[@for='dropdown']",
55
- link_label: "//label[@id='links']",
56
- table_label: "//label[@for='table']",
57
- images_label: "//label[@id='images']"
58
- end