druid-ts 1.1.0 → 1.1.1
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 +10 -0
- data/druid.gemspec +2 -2
- data/features/html/multi_elements.html +135 -0
- data/features/multi_elements.feature +173 -0
- data/features/step_definations/multi_elements_steps.rb +296 -0
- data/features/support/env.rb +2 -0
- data/features/support/url_helper.rb +4 -0
- data/lib/druid/assist.rb +239 -198
- data/lib/druid/element_locators.rb +418 -25
- data/lib/druid/nested_elements.rb +96 -0
- data/lib/druid/page_factory.rb +87 -10
- data/lib/druid/version.rb +3 -0
- data/spec/druid/element_locators_spec.rb +147 -0
- data/spec/druid/page_factory_spec.rb +98 -0
- metadata +11 -8
@@ -17,7 +17,26 @@ module Druid
|
|
17
17
|
# * :alt
|
18
18
|
#
|
19
19
|
def button_element identifier
|
20
|
-
button_for identifier
|
20
|
+
button_for identifier.clone
|
21
|
+
end
|
22
|
+
|
23
|
+
#
|
24
|
+
# Finds all buttons that match the provided identifier
|
25
|
+
#
|
26
|
+
# @param [Hash] identifier how we find a button. You can use a multiple paramaters
|
27
|
+
# by combining of any of the following except xpath. The valid keys are:
|
28
|
+
# * :class
|
29
|
+
# * :id
|
30
|
+
# * :index
|
31
|
+
# * :name
|
32
|
+
# * :text
|
33
|
+
# * :value
|
34
|
+
# * :xpath
|
35
|
+
# * :src
|
36
|
+
# * :alt
|
37
|
+
#
|
38
|
+
def button_elements identifier
|
39
|
+
buttons_for identifier.clone
|
21
40
|
end
|
22
41
|
|
23
42
|
#
|
@@ -36,7 +55,27 @@ module Druid
|
|
36
55
|
# * :title
|
37
56
|
#
|
38
57
|
def text_field_element identifier
|
39
|
-
text_field_for identifier
|
58
|
+
text_field_for identifier.clone
|
59
|
+
end
|
60
|
+
|
61
|
+
#
|
62
|
+
# Finds all text fields that match the provided identifier
|
63
|
+
#
|
64
|
+
# @param [Hash] identifier how we find a text field. You can use a multiple parameters
|
65
|
+
# by combining of any of the following except xpath. The valid keys are:
|
66
|
+
#
|
67
|
+
# * :class
|
68
|
+
# * :css
|
69
|
+
# * :id
|
70
|
+
# * :index
|
71
|
+
# * :name
|
72
|
+
# * :tag_name
|
73
|
+
# * :text
|
74
|
+
# * :xpath
|
75
|
+
# * :title
|
76
|
+
#
|
77
|
+
def text_field_elements(identifier)
|
78
|
+
text_fields_for identifier.clone
|
40
79
|
end
|
41
80
|
|
42
81
|
#
|
@@ -55,7 +94,27 @@ module Druid
|
|
55
94
|
# * :value
|
56
95
|
#
|
57
96
|
def hidden_field_element identifier
|
58
|
-
hidden_field_for identifier
|
97
|
+
hidden_field_for identifier.clone
|
98
|
+
end
|
99
|
+
|
100
|
+
#
|
101
|
+
# Finds all hidden fields that match the identifier
|
102
|
+
#
|
103
|
+
# @param [Hash] identifier how we find a hidden field. You can use a multiple parameters
|
104
|
+
# by combining of any of the following except xpath. The valid keys are:
|
105
|
+
#
|
106
|
+
# * :class
|
107
|
+
# * :css
|
108
|
+
# * :id
|
109
|
+
# * :index
|
110
|
+
# * :name
|
111
|
+
# * :tag_name
|
112
|
+
# * :text
|
113
|
+
# * :xpath
|
114
|
+
# * :value
|
115
|
+
#
|
116
|
+
def hidden_field_elements identifier
|
117
|
+
hidden_fields_for identifier.clone
|
59
118
|
end
|
60
119
|
|
61
120
|
#
|
@@ -72,7 +131,24 @@ module Druid
|
|
72
131
|
# * :xpath
|
73
132
|
#
|
74
133
|
def text_area_element identifier
|
75
|
-
text_area_for identifier
|
134
|
+
text_area_for identifier.clone
|
135
|
+
end
|
136
|
+
|
137
|
+
#
|
138
|
+
# Finds all text areas for the provided identifier
|
139
|
+
#
|
140
|
+
# @param [Hash] identifier how we find a text area. You can use a multiple parameters
|
141
|
+
# by combining of any of the following except xpath. The valid keys are:
|
142
|
+
# * :class
|
143
|
+
# * :css
|
144
|
+
# * :id
|
145
|
+
# * :index
|
146
|
+
# * :name
|
147
|
+
# * :tag_name
|
148
|
+
# * :xpath
|
149
|
+
#
|
150
|
+
def text_area_elements identifier
|
151
|
+
text_areas_for identifier.clone
|
76
152
|
end
|
77
153
|
|
78
154
|
#
|
@@ -89,7 +165,24 @@ module Druid
|
|
89
165
|
# * :text
|
90
166
|
#
|
91
167
|
def select_list_element identifier
|
92
|
-
select_list_for identifier
|
168
|
+
select_list_for identifier.clone
|
169
|
+
end
|
170
|
+
|
171
|
+
#
|
172
|
+
# Finds all select lists for the provided identifier
|
173
|
+
#
|
174
|
+
# @param [Hash] identifier how we find a select list. You can use a multiple paramaters
|
175
|
+
# by combining of any of the following except xpath. The valid keys are:
|
176
|
+
# * :class
|
177
|
+
# * :id
|
178
|
+
# * :index
|
179
|
+
# * :name
|
180
|
+
# * :xpath
|
181
|
+
# * :value
|
182
|
+
# * :text
|
183
|
+
#
|
184
|
+
def select_list_elements identifier
|
185
|
+
select_lists_for identifier.clone
|
93
186
|
end
|
94
187
|
|
95
188
|
#
|
@@ -108,7 +201,26 @@ module Druid
|
|
108
201
|
# * :text
|
109
202
|
#
|
110
203
|
def link_element identifier
|
111
|
-
link_for identifier
|
204
|
+
link_for identifier.clone
|
205
|
+
end
|
206
|
+
|
207
|
+
#
|
208
|
+
# Finds all links for the provided identifier
|
209
|
+
#
|
210
|
+
# @param [Hash] identifier how we find a link. You can use a multiple parameters
|
211
|
+
# by combining of any of the following except xpath. The valid keys are:
|
212
|
+
# * :class
|
213
|
+
# * :href
|
214
|
+
# * :id
|
215
|
+
# * :index
|
216
|
+
# * :link
|
217
|
+
# * :link_text
|
218
|
+
# * :name
|
219
|
+
# * :xpath
|
220
|
+
# * :text
|
221
|
+
#
|
222
|
+
def link_elements identifier
|
223
|
+
links_for identifier.clone
|
112
224
|
end
|
113
225
|
|
114
226
|
#
|
@@ -124,7 +236,23 @@ module Druid
|
|
124
236
|
# * :value
|
125
237
|
#
|
126
238
|
def checkbox_element identifier
|
127
|
-
checkbox_for identifier
|
239
|
+
checkbox_for identifier.clone
|
240
|
+
end
|
241
|
+
|
242
|
+
#
|
243
|
+
# Finds all checkbox elements for the provided identifier
|
244
|
+
#
|
245
|
+
# @param [Hash] identifier how we find a checkbox. You can use a multiple parameters
|
246
|
+
# by combining of any of the following except xpath. The valid keys are:
|
247
|
+
# * :class
|
248
|
+
# * :id
|
249
|
+
# * :index
|
250
|
+
# * :name
|
251
|
+
# * :xpath
|
252
|
+
# * :value
|
253
|
+
#
|
254
|
+
def checkbox_elements identifier
|
255
|
+
checkboxes_for identifier.clone
|
128
256
|
end
|
129
257
|
|
130
258
|
#
|
@@ -139,7 +267,22 @@ module Druid
|
|
139
267
|
# * :xpath
|
140
268
|
#
|
141
269
|
def radio_button_element identifier
|
142
|
-
radio_button_for identifier
|
270
|
+
radio_button_for identifier.clone
|
271
|
+
end
|
272
|
+
|
273
|
+
#
|
274
|
+
# Finds all radio button elements that match the provided identifier
|
275
|
+
#
|
276
|
+
# @param [Hash] identifier how we find a radio button. You can use a multiple parameters
|
277
|
+
# by combining of any of the following except xpath. The valid keys are:
|
278
|
+
# * :class
|
279
|
+
# * :id
|
280
|
+
# * :index
|
281
|
+
# * :name
|
282
|
+
# * :xpath
|
283
|
+
#
|
284
|
+
def radio_button_elements identifier
|
285
|
+
radio_buttons_for identifier.clone
|
143
286
|
end
|
144
287
|
|
145
288
|
#
|
@@ -155,7 +298,23 @@ module Druid
|
|
155
298
|
# * :text
|
156
299
|
#
|
157
300
|
def div_element identifier
|
158
|
-
div_for identifier
|
301
|
+
div_for identifier.clone
|
302
|
+
end
|
303
|
+
|
304
|
+
#
|
305
|
+
# Finds all divs that match the provided identifier
|
306
|
+
#
|
307
|
+
# @param [Hash] identifier how we find a div. You can use a multiple parameters
|
308
|
+
# by combining of any of the following except xpath. The valid keys are:
|
309
|
+
# * :class
|
310
|
+
# * :id
|
311
|
+
# * :index
|
312
|
+
# * :name
|
313
|
+
# * :xpath
|
314
|
+
# * :text
|
315
|
+
#
|
316
|
+
def div_elements identifier
|
317
|
+
divs_for identifier
|
159
318
|
end
|
160
319
|
|
161
320
|
#
|
@@ -170,7 +329,22 @@ module Druid
|
|
170
329
|
# * :xpath
|
171
330
|
#
|
172
331
|
def span_element identifier
|
173
|
-
span_for identifier
|
332
|
+
span_for identifier.clone
|
333
|
+
end
|
334
|
+
|
335
|
+
#
|
336
|
+
# Finds all span elements that match the provided identifier
|
337
|
+
#
|
338
|
+
# @param [Hash] identifier how we find a span. You can use multiple parameters
|
339
|
+
# by combining of any of the following except xpath. The valid keys are:
|
340
|
+
# * :class
|
341
|
+
# * :id
|
342
|
+
# * :index
|
343
|
+
# * :name
|
344
|
+
# * :xpath
|
345
|
+
#
|
346
|
+
def span_elements identifier
|
347
|
+
spans_for identifier.clone
|
174
348
|
end
|
175
349
|
|
176
350
|
#
|
@@ -185,7 +359,22 @@ module Druid
|
|
185
359
|
# * :xpath
|
186
360
|
#
|
187
361
|
def table_element identifier
|
188
|
-
table_for identifier
|
362
|
+
table_for identifier.clone
|
363
|
+
end
|
364
|
+
|
365
|
+
#
|
366
|
+
# Finds all tables with match the provided identifier
|
367
|
+
#
|
368
|
+
# @param [Hash] identifier how we find a table. You can use a multiple parameters
|
369
|
+
# by combining of any of the following except xpath. The valid keys are:
|
370
|
+
# * :class
|
371
|
+
# * :id
|
372
|
+
# * :index
|
373
|
+
# * :name
|
374
|
+
# * :xpath
|
375
|
+
#
|
376
|
+
def table_elements identifier
|
377
|
+
tables_for identifier.clone
|
189
378
|
end
|
190
379
|
|
191
380
|
#
|
@@ -201,7 +390,23 @@ module Druid
|
|
201
390
|
# * :text
|
202
391
|
#
|
203
392
|
def cell_element identifier
|
204
|
-
cell_for identifier
|
393
|
+
cell_for identifier.clone
|
394
|
+
end
|
395
|
+
|
396
|
+
#
|
397
|
+
# Finds all table cell elements that match the provided identifier
|
398
|
+
#
|
399
|
+
# @param [Hash] identifier how we find a cell. You can use a multiple parameters
|
400
|
+
# by combining of any of the following except xpath. The valid keys are:
|
401
|
+
# * :class
|
402
|
+
# * :id
|
403
|
+
# * :index
|
404
|
+
# * :name
|
405
|
+
# * :xpath
|
406
|
+
# * :text
|
407
|
+
#
|
408
|
+
def cell_elements identifier
|
409
|
+
cells_for identifier.clone
|
205
410
|
end
|
206
411
|
|
207
412
|
#
|
@@ -218,7 +423,24 @@ module Druid
|
|
218
423
|
# * :src
|
219
424
|
#
|
220
425
|
def image_element identifier
|
221
|
-
image_for identifier
|
426
|
+
image_for identifier.clone
|
427
|
+
end
|
428
|
+
|
429
|
+
#
|
430
|
+
# Finds all images that match the provided identifier
|
431
|
+
#
|
432
|
+
# @param [Hash] identifier how we find an image. You can use a multiple parameters
|
433
|
+
# by combining of any of the following except xpath. The valid keys are:
|
434
|
+
# * :class
|
435
|
+
# * :id
|
436
|
+
# * :index
|
437
|
+
# * :name
|
438
|
+
# * :xpath
|
439
|
+
# * :alt
|
440
|
+
# * :src
|
441
|
+
#
|
442
|
+
def image_elements identifier
|
443
|
+
images_for identifier.clone
|
222
444
|
end
|
223
445
|
|
224
446
|
#
|
@@ -233,7 +455,22 @@ module Druid
|
|
233
455
|
# * :action
|
234
456
|
#
|
235
457
|
def form_element identifier
|
236
|
-
form_for identifier
|
458
|
+
form_for identifier.clone
|
459
|
+
end
|
460
|
+
|
461
|
+
#
|
462
|
+
# Finds all forms that match the provided identifier
|
463
|
+
#
|
464
|
+
# @param [Hash] identifier how we find a form. You can use a multiple parameters
|
465
|
+
# by combining of any of the following except xpath. The valid keys are:
|
466
|
+
# * :class
|
467
|
+
# * :id
|
468
|
+
# * :index
|
469
|
+
# * :xpath
|
470
|
+
# * :action
|
471
|
+
#
|
472
|
+
def form_elements identifier
|
473
|
+
forms_for identifier.clone
|
237
474
|
end
|
238
475
|
|
239
476
|
#
|
@@ -248,7 +485,22 @@ module Druid
|
|
248
485
|
# * :name
|
249
486
|
#
|
250
487
|
def list_item_element identifier
|
251
|
-
list_item_for identifier
|
488
|
+
list_item_for identifier.clone
|
489
|
+
end
|
490
|
+
|
491
|
+
#
|
492
|
+
# Finds all list items that match the identifier
|
493
|
+
#
|
494
|
+
# @param [Hash] identifier how we find a list item. You can use a multiple parameters
|
495
|
+
# by combining of any of the following except xpath. The valid keys are:
|
496
|
+
# * :class
|
497
|
+
# * :id
|
498
|
+
# * :index
|
499
|
+
# * :xpath
|
500
|
+
# * :name
|
501
|
+
#
|
502
|
+
def list_item_elements identifier
|
503
|
+
list_items_for identifier.clone
|
252
504
|
end
|
253
505
|
|
254
506
|
#
|
@@ -263,7 +515,22 @@ module Druid
|
|
263
515
|
# * :name
|
264
516
|
#
|
265
517
|
def ordered_list_element identifier
|
266
|
-
ordered_list_for identifier
|
518
|
+
ordered_list_for identifier.clone
|
519
|
+
end
|
520
|
+
|
521
|
+
#
|
522
|
+
# Finds all ordered lists that match the provided identifier
|
523
|
+
#
|
524
|
+
# @param [Hash] identifier how we find an ordered list. You can use a multiple parameters
|
525
|
+
# by combining of any of the following except xpath. The valid keys are:
|
526
|
+
# * :class
|
527
|
+
# * :id
|
528
|
+
# * :index
|
529
|
+
# * :xpath
|
530
|
+
# * :name
|
531
|
+
#
|
532
|
+
def ordered_list_elements identifier
|
533
|
+
ordered_lists_for identifier.clone
|
267
534
|
end
|
268
535
|
|
269
536
|
#
|
@@ -278,7 +545,22 @@ module Druid
|
|
278
545
|
# * :name
|
279
546
|
#
|
280
547
|
def unordered_list_element identifier
|
281
|
-
unordered_list_for identifier
|
548
|
+
unordered_list_for identifier.clone
|
549
|
+
end
|
550
|
+
|
551
|
+
#
|
552
|
+
# Finds all unordered lists that match the provided identifier
|
553
|
+
#
|
554
|
+
# @param [Hash] identifier how we find an unordered list. You can use a multiple parameters
|
555
|
+
# by combining of any of the following except xpath. The valid keys are:
|
556
|
+
# * :class
|
557
|
+
# * :id
|
558
|
+
# * :index
|
559
|
+
# * :xpath
|
560
|
+
# * :name
|
561
|
+
#
|
562
|
+
def unordered_list_elements identifier
|
563
|
+
unordered_lists_for identifier.clone
|
282
564
|
end
|
283
565
|
|
284
566
|
#
|
@@ -293,7 +575,23 @@ module Druid
|
|
293
575
|
# * :name
|
294
576
|
#
|
295
577
|
def h1_element identifier
|
296
|
-
h1_for identifier
|
578
|
+
h1_for identifier.clone
|
579
|
+
end
|
580
|
+
|
581
|
+
#
|
582
|
+
# Finds all h1 elements that match the provided identifier
|
583
|
+
#
|
584
|
+
#
|
585
|
+
# @param [Hash] identifier how we find a h1. You can use a multiple parameters
|
586
|
+
# by combining of any of the following except xpath. The valid keys are:
|
587
|
+
# * :class
|
588
|
+
# * :id
|
589
|
+
# * :index
|
590
|
+
# * :xpath
|
591
|
+
# * :name
|
592
|
+
#
|
593
|
+
def h1_elements identifier
|
594
|
+
h1s_for identifier.clone
|
297
595
|
end
|
298
596
|
|
299
597
|
#
|
@@ -308,7 +606,23 @@ module Druid
|
|
308
606
|
# * :name
|
309
607
|
#
|
310
608
|
def h2_element identifier
|
311
|
-
h2_for identifier
|
609
|
+
h2_for identifier.clone
|
610
|
+
end
|
611
|
+
|
612
|
+
#
|
613
|
+
# Finds all h2 elements that match the provided identifier
|
614
|
+
#
|
615
|
+
#
|
616
|
+
# @param [Hash] identifier how we find a h2. You can use a multiple parameters
|
617
|
+
# by combining of any of the following except xpath. The valid keys are:
|
618
|
+
# * :class
|
619
|
+
# * :id
|
620
|
+
# * :index
|
621
|
+
# * :xpath
|
622
|
+
# * :name
|
623
|
+
#
|
624
|
+
def h2_elements identifier
|
625
|
+
h2s_for identifier.clone
|
312
626
|
end
|
313
627
|
|
314
628
|
#
|
@@ -323,7 +637,23 @@ module Druid
|
|
323
637
|
# * :name
|
324
638
|
#
|
325
639
|
def h3_element identifier
|
326
|
-
h3_for identifier
|
640
|
+
h3_for identifier.clone
|
641
|
+
end
|
642
|
+
|
643
|
+
#
|
644
|
+
# Finds all h3 elements that match the provided identifier
|
645
|
+
#
|
646
|
+
#
|
647
|
+
# @param [Hash] identifier how we find a h3. You can use a multiple parameters
|
648
|
+
# by combining of any of the following except xpath. The valid keys are:
|
649
|
+
# * :class
|
650
|
+
# * :id
|
651
|
+
# * :index
|
652
|
+
# * :xpath
|
653
|
+
# * :name
|
654
|
+
#
|
655
|
+
def h3_elements identifier
|
656
|
+
h3s_for identifier.clone
|
327
657
|
end
|
328
658
|
|
329
659
|
#
|
@@ -338,7 +668,23 @@ module Druid
|
|
338
668
|
# * :name
|
339
669
|
#
|
340
670
|
def h4_element identifier
|
341
|
-
h4_for identifier
|
671
|
+
h4_for identifier.clone
|
672
|
+
end
|
673
|
+
|
674
|
+
#
|
675
|
+
# Finds all h4 elements that match the provided identifier
|
676
|
+
#
|
677
|
+
#
|
678
|
+
# @param [Hash] identifier how we find a h4. You can use a multiple parameters
|
679
|
+
# by combining of any of the following except xpath. The valid keys are:
|
680
|
+
# * :class
|
681
|
+
# * :id
|
682
|
+
# * :index
|
683
|
+
# * :xpath
|
684
|
+
# * :name
|
685
|
+
#
|
686
|
+
def h4_elements identifier
|
687
|
+
h4s_for identifier.clone
|
342
688
|
end
|
343
689
|
|
344
690
|
#
|
@@ -353,7 +699,23 @@ module Druid
|
|
353
699
|
# * :name
|
354
700
|
#
|
355
701
|
def h5_element identifier
|
356
|
-
h5_for identifier
|
702
|
+
h5_for identifier.clone
|
703
|
+
end
|
704
|
+
|
705
|
+
#
|
706
|
+
# Finds all h5 elements that match the provided identifier
|
707
|
+
#
|
708
|
+
#
|
709
|
+
# @param [Hash] identifier how we find a h5. You can use a multiple parameters
|
710
|
+
# by combining of any of the following except xpath. The valid keys are:
|
711
|
+
# * :class
|
712
|
+
# * :id
|
713
|
+
# * :index
|
714
|
+
# * :xpath
|
715
|
+
# * :name
|
716
|
+
#
|
717
|
+
def h5_elements identifier
|
718
|
+
h5s_for identifier.clone
|
357
719
|
end
|
358
720
|
|
359
721
|
#
|
@@ -368,7 +730,23 @@ module Druid
|
|
368
730
|
# * :name
|
369
731
|
#
|
370
732
|
def h6_element identifier
|
371
|
-
h6_for identifier
|
733
|
+
h6_for identifier.clone
|
734
|
+
end
|
735
|
+
|
736
|
+
#
|
737
|
+
# Finds all h6 elements that match the provided identifier
|
738
|
+
#
|
739
|
+
#
|
740
|
+
# @param [Hash] identifier how we find a h6. You can use a multiple parameters
|
741
|
+
# by combining of any of the following except xpath. The valid keys are:
|
742
|
+
# * :class
|
743
|
+
# * :id
|
744
|
+
# * :index
|
745
|
+
# * :xpath
|
746
|
+
# * :name
|
747
|
+
#
|
748
|
+
def h6_elements identifier
|
749
|
+
h6s_for identifier.clone
|
372
750
|
end
|
373
751
|
|
374
752
|
#
|
@@ -383,7 +761,22 @@ module Druid
|
|
383
761
|
# * :name
|
384
762
|
#
|
385
763
|
def paragraph_element identifier
|
386
|
-
paragraph_for identifier
|
764
|
+
paragraph_for identifier.clone
|
765
|
+
end
|
766
|
+
|
767
|
+
#
|
768
|
+
# Finds all paragraph elements that match the provided identifier
|
769
|
+
#
|
770
|
+
# @param [Hash] identifier how we find a paragraph. You can use a multiple parameters
|
771
|
+
# by combining of any of the following except xpath. The valid keys are:
|
772
|
+
# * :class
|
773
|
+
# * :id
|
774
|
+
# * :index
|
775
|
+
# * :xpath
|
776
|
+
# * :name
|
777
|
+
#
|
778
|
+
def paragraph_elements identifier
|
779
|
+
paragraphs_for identifier.clone
|
387
780
|
end
|
388
781
|
|
389
782
|
#
|
@@ -399,7 +792,7 @@ module Druid
|
|
399
792
|
# * :title
|
400
793
|
#
|
401
794
|
def file_field_element identifier
|
402
|
-
file_field_for identifier
|
795
|
+
file_field_for identifier.clone
|
403
796
|
end
|
404
797
|
end
|
405
798
|
end
|