page-object 0.6.4 → 0.6.5

Sign up to get free protection for your applications and to get access to all the features.
@@ -18,8 +18,6 @@ Feature: Text Area
18
18
  | class |
19
19
  | name |
20
20
  | xpath |
21
- | css |
22
- | tag_name |
23
21
  | index |
24
22
 
25
23
 
@@ -41,4 +39,4 @@ Feature: Text Area
41
39
  When I type "abcdefghijklmnop" into the text area
42
40
  Then the text area should contain "abcdefghijklmnop"
43
41
  When I clear the text area
44
- Then the text area should contain ""
42
+ Then the text area should contain ""
@@ -20,8 +20,6 @@ Feature: Text Fields
20
20
  | class |
21
21
  | name |
22
22
  | xpath |
23
- | css |
24
- | tag_name |
25
23
  | index |
26
24
  | title |
27
25
 
@@ -97,18 +97,16 @@ module PageObject
97
97
  # @param [Hash] identifier how we find a text field. You can use a multiple paramaters
98
98
  # by combining of any of the following except xpath. The valid keys are:
99
99
  # * :class => Watir and Selenium
100
- # * :css => Watir and Selenium
101
100
  # * :id => Watir and Selenium
102
101
  # * :index => Watir and Selenium
103
102
  # * :name => Watir and Selenium
104
- # * :tag_name => Watir and Selenium
105
103
  # * :text => Watir only
106
104
  # * :title => Watir and Selenium
107
105
  # * :value => Watir only
108
106
  # * :xpath => Watir and Selenium
109
107
  # @param optional block to be invoked when element method is called
110
108
  #
111
- def text_field(name, identifier=nil, &block)
109
+ def text_field(name, identifier={:index => 0}, &block)
112
110
  define_method(name) do
113
111
  return platform.text_field_value_for identifier.clone unless block_given?
114
112
  self.send("#{name}_element").value
@@ -141,17 +139,15 @@ module PageObject
141
139
  # @param [Hash] identifier how we find a hidden field. You can use a multiple paramaters
142
140
  # by combining of any of the following except xpath. The valid keys are:
143
141
  # * :class => Watir and Selenium
144
- # * :css => Watir and Selenium
145
142
  # * :id => Watir and Selenium
146
143
  # * :index => Watir and Selenium
147
144
  # * :name => Watir and Selenium
148
- # * :tag_name => Watir and Selenium
149
145
  # * :text => Watir and Selenium
150
146
  # * :value => Watir and Selenium
151
147
  # * :xpath => Watir and Selenium
152
148
  # @param optional block to be invoked when element method is called
153
149
  #
154
- def hidden_field(name, identifier=nil, &block)
150
+ def hidden_field(name, identifier={:index => 0}, &block)
155
151
  define_method(name) do
156
152
  return platform.hidden_field_value_for identifier.clone unless block_given?
157
153
  self.send("#{name}_element").value
@@ -181,15 +177,13 @@ module PageObject
181
177
  # @param [Hash] identifier how we find a text area. You can use a multiple paramaters
182
178
  # by combining of any of the following except xpath. The valid keys are:
183
179
  # * :class => Watir and Selenium
184
- # * :css => Watir and Selenium
185
180
  # * :id => Watir and Selenium
186
181
  # * :index => Watir and Selenium
187
182
  # * :name => Watir and Selenium
188
- # * :tag_name => Watir and Selenium
189
183
  # * :xpath => Watir and Selenium
190
184
  # @param optional block to be invoked when element method is called
191
185
  #
192
- def text_area(name, identifier=nil, &block)
186
+ def text_area(name, identifier={:index => 0}, &block)
193
187
  define_method(name) do
194
188
  return platform.text_area_value_for identifier.clone unless block_given?
195
189
  self.send("#{name}_element").value
@@ -219,7 +213,7 @@ module PageObject
219
213
  # select_list(:state, :id => "state")
220
214
  # # will generate 'state', 'state=', 'state_element', 'state?' methods
221
215
  #
222
- # @param [String] the name used for the generated methods
216
+ # @param [Symbol] the name used for the generated methods
223
217
  # @param [Hash] identifier how we find a select list. You can use a multiple paramaters
224
218
  # by combining of any of the following except xpath. The valid keys are:
225
219
  # * :class => Watir and Selenium
@@ -231,7 +225,7 @@ module PageObject
231
225
  # * :xpath => Watir and Selenium
232
226
  # @param optional block to be invoked when element method is called
233
227
  #
234
- def select_list(name, identifier=nil, &block)
228
+ def select_list(name, identifier={:index => 0}, &block)
235
229
  define_method(name) do
236
230
  return platform.select_list_value_for identifier.clone unless block_given?
237
231
  self.send("#{name}_element").value
@@ -260,7 +254,7 @@ module PageObject
260
254
  # link(:add_to_cart, :text => "Add to Cart")
261
255
  # # will generate 'add_to_cart', 'add_to_cart_element', and 'add_to_cart?' methods
262
256
  #
263
- # @param [String] the name used for the generated methods
257
+ # @param [Symbol] the name used for the generated methods
264
258
  # @param [Hash] identifier how we find a link. You can use a multiple paramaters
265
259
  # by combining of any of the following except xpath. The valid keys are:
266
260
  # * :class => Watir and Selenium
@@ -275,7 +269,7 @@ module PageObject
275
269
  # * :xpath => Watir and Selenium
276
270
  # @param optional block to be invoked when element method is called
277
271
  #
278
- def link(name, identifier=nil, &block)
272
+ def link(name, identifier={:index => 0}, &block)
279
273
  define_method(name) do
280
274
  return platform.click_link_for identifier.clone unless block_given?
281
275
  self.send("#{name}_element").click
@@ -302,7 +296,7 @@ module PageObject
302
296
  # # will generate 'check_active', 'uncheck_active', 'active_checked?',
303
297
  # # 'active_element', and 'active?' methods
304
298
  #
305
- # @param [String] the name used for the generated methods
299
+ # @param [Symbol] the name used for the generated methods
306
300
  # @param [Hash] identifier how we find a checkbox. You can use a multiple paramaters
307
301
  # by combining of any of the following except xpath. The valid keys are:
308
302
  # * :class => Watir and Selenium
@@ -313,7 +307,7 @@ module PageObject
313
307
  # * :xpath => Watir and Selenium
314
308
  # @param optional block to be invoked when element method is called
315
309
  #
316
- def checkbox(name, identifier=nil, &block)
310
+ def checkbox(name, identifier={:index => 0}, &block)
317
311
  define_method("check_#{name}") do
318
312
  return platform.check_checkbox(identifier.clone) unless block_given?
319
313
  self.send("#{name}_element").check
@@ -349,7 +343,7 @@ module PageObject
349
343
  # # will generate 'select_north', 'clear_north', 'north_selected?',
350
344
  # # 'north_element', and 'north?' methods
351
345
  #
352
- # @param [String] the name used for the generated methods
346
+ # @param [Symbol] the name used for the generated methods
353
347
  # @param [Hash] identifier how we find a radio button. You can use a multiple paramaters
354
348
  # by combining of any of the following except xpath. The valid keys are:
355
349
  # * :class => Watir and Selenium
@@ -360,7 +354,7 @@ module PageObject
360
354
  # * :xpath => Watir and Selenium
361
355
  # @param optional block to be invoked when element method is called
362
356
  #
363
- def radio_button(name, identifier=nil, &block)
357
+ def radio_button(name, identifier={:index => 0}, &block)
364
358
  define_method("select_#{name}") do
365
359
  return platform.select_radio(identifier.clone) unless block_given?
366
360
  self.send("#{name}_element").select
@@ -392,7 +386,7 @@ module PageObject
392
386
  # button(:purchase, :id => 'purchase')
393
387
  # # will generate 'purchase', 'purchase_element', and 'purchase?' methods
394
388
  #
395
- # @param [String] the name used for the generated methods
389
+ # @param [Symbol] the name used for the generated methods
396
390
  # @param [Hash] identifier how we find a button. You can use a multiple paramaters
397
391
  # by combining of any of the following except xpath. The valid keys are:
398
392
  # * :class => Watir and Selenium
@@ -407,7 +401,7 @@ module PageObject
407
401
  # * :alt => Watir and Selenium (input type=image only)
408
402
  # @param optional block to be invoked when element method is called
409
403
  #
410
- def button(name, identifier=nil, &block)
404
+ def button(name, identifier={:index => 0}, &block)
411
405
  define_method(name) do
412
406
  return platform.click_button_for identifier.clone unless block_given?
413
407
  self.send("#{name}_element").click
@@ -431,7 +425,7 @@ module PageObject
431
425
  # div(:message, :id => 'message')
432
426
  # # will generate 'message', 'message_element', and 'message?' methods
433
427
  #
434
- # @param [String] the name used for the generated methods
428
+ # @param [Symbol] the name used for the generated methods
435
429
  # @param [Hash] identifier how we find a div. You can use a multiple paramaters
436
430
  # by combining of any of the following except xpath. The valid keys are:
437
431
  # * :class => Watir and Selenium
@@ -442,7 +436,7 @@ module PageObject
442
436
  # * :xpath => Watir and Selenium
443
437
  # @param optional block to be invoked when element method is called
444
438
  #
445
- def div(name, identifier=nil, &block)
439
+ def div(name, identifier={:index => 0}, &block)
446
440
  define_method(name) do
447
441
  return platform.div_text_for identifier.clone unless block_given?
448
442
  self.send("#{name}_element").text
@@ -466,7 +460,7 @@ module PageObject
466
460
  # span(:alert, :id => 'alert')
467
461
  # # will generate 'alert', 'alert_element', and 'alert?' methods
468
462
  #
469
- # @param [String] the name used for the generated methods
463
+ # @param [Symbol] the name used for the generated methods
470
464
  # @param [Hash] identifier how we find a span. You can use a multiple paramaters
471
465
  # by combining of any of the following except xpath. The valid keys are:
472
466
  # * :class => Watir and Selenium
@@ -476,7 +470,7 @@ module PageObject
476
470
  # * :xpath => Watir and Selenium
477
471
  # @param optional block to be invoked when element method is called
478
472
  #
479
- def span(name, identifier=nil, &block)
473
+ def span(name, identifier={:index => 0}, &block)
480
474
  define_method(name) do
481
475
  return platform.span_text_for identifier.clone unless block_given?
482
476
  self.send("#{name}_element").text
@@ -501,7 +495,7 @@ module PageObject
501
495
  # table(:cart, :id => 'shopping_cart')
502
496
  # # will generate a 'cart_element' and 'cart?' method
503
497
  #
504
- # @param [String] the name used for the generated methods
498
+ # @param [Symbol] the name used for the generated methods
505
499
  # @param [Hash] identifier how we find a table. You can use a multiple paramaters
506
500
  # by combining of any of the following except xpath. The valid keys are:
507
501
  # * :class => Watir and Selenium
@@ -511,7 +505,7 @@ module PageObject
511
505
  # * :xpath => Watir and Selenium
512
506
  # @param optional block to be invoked when element method is called
513
507
  #
514
- def table(name, identifier=nil, &block)
508
+ def table(name, identifier={:index => 0}, &block)
515
509
  define_method("#{name}_element") do
516
510
  return call_block(&block) if block_given?
517
511
  platform.table_for(identifier.clone)
@@ -532,7 +526,7 @@ module PageObject
532
526
  # cell(:total, :id => 'total_cell')
533
527
  # # will generate 'total', 'total_element', and 'total?' methods
534
528
  #
535
- # @param [String] the name used for the generated methods
529
+ # @param [Symbol] the name used for the generated methods
536
530
  # @param [Hash] identifier how we find a cell. You can use a multiple paramaters
537
531
  # by combining of any of the following except xpath. The valid keys are:
538
532
  # * :class => Watir and Selenium
@@ -543,7 +537,7 @@ module PageObject
543
537
  # * :xpath => Watir and Selenium
544
538
  # @param optional block to be invoked when element method is called
545
539
  #
546
- def cell(name, identifier=nil, &block)
540
+ def cell(name, identifier={:index => 0}, &block)
547
541
  define_method("#{name}") do
548
542
  return platform.cell_text_for identifier.clone unless block_given?
549
543
  self.send("#{name}_element").text
@@ -567,7 +561,7 @@ module PageObject
567
561
  # image(:logo, :id => 'logo')
568
562
  # # will generate 'logo_element' and 'logo?' methods
569
563
  #
570
- # @param [String] the name used for the generated methods
564
+ # @param [Symbol] the name used for the generated methods
571
565
  # @param [Hash] identifier how we find an image. You can use a multiple paramaters
572
566
  # by combining of any of the following except xpath. The valid keys are:
573
567
  # * :alt => Watir and Selenium
@@ -579,7 +573,7 @@ module PageObject
579
573
  # * :xpath => Watir and Selenium
580
574
  # @param optional block to be invoked when element method is called
581
575
  #
582
- def image(name, identifier=nil, &block)
576
+ def image(name, identifier={:index => 0}, &block)
583
577
  define_method("#{name}_element") do
584
578
  return call_block(&block) if block_given?
585
579
  platform.image_for(identifier.clone)
@@ -599,7 +593,7 @@ module PageObject
599
593
  # form(:login, :id => 'login')
600
594
  # # will generate 'login_element' and 'login?' methods
601
595
  #
602
- # @param [String] the name used for the generated methods
596
+ # @param [Symbol] the name used for the generated methods
603
597
  # @param [Hash] identifier how we find a form. You can use a multiple paramaters
604
598
  # by combining of any of the following except xpath. The valid keys are:
605
599
  # * :action => Watir and Selenium
@@ -609,7 +603,7 @@ module PageObject
609
603
  # * :xpath => Watir and Selenium
610
604
  # @param optional block to be invoked when element method is called
611
605
  #
612
- def form(name, identifier=nil, &block)
606
+ def form(name, identifier={:index => 0}, &block)
613
607
  define_method("#{name}_element") do
614
608
  return call_block(&block) if block_given?
615
609
  platform.form_for(identifier.clone)
@@ -630,7 +624,7 @@ module PageObject
630
624
  # list_item(:item_one, :id => 'one')
631
625
  # # will generate 'item_one', 'item_one_element', and 'item_one?' methods
632
626
  #
633
- # @param [String] the name used for the generated methods
627
+ # @param [Symbol] the name used for the generated methods
634
628
  # @param [Hash] identifier how we find a list item. You can use a multiple paramaters
635
629
  # by combining of any of the following except xpath. The valid keys are:
636
630
  # * :class => Watir and Selenium
@@ -640,7 +634,7 @@ module PageObject
640
634
  # * :xpath => Watir and Selenium
641
635
  # @param optional block to be invoked when element method is called
642
636
  #
643
- def list_item(name, identifier=nil, &block)
637
+ def list_item(name, identifier={:index => 0}, &block)
644
638
  define_method(name) do
645
639
  return platform.list_item_text_for identifier.clone unless block_given?
646
640
  self.send("#{name}_element").text
@@ -664,7 +658,7 @@ module PageObject
664
658
  # unordered_list(:menu, :id => 'main_menu')
665
659
  # # will generate 'menu_element' and 'menu?' methods
666
660
  #
667
- # @param [String] the name used for the generated methods
661
+ # @param [Symbol] the name used for the generated methods
668
662
  # @param [Hash] identifier how we find an unordered list. You can use a multiple paramaters
669
663
  # by combining of any of the following except xpath. The valid keys are:
670
664
  # * :class => Watir and Selenium
@@ -674,7 +668,7 @@ module PageObject
674
668
  # * :xpath => Watir and Selenium
675
669
  # @param optional block to be invoked when element method is called
676
670
  #
677
- def unordered_list(name, identifier=nil, &block)
671
+ def unordered_list(name, identifier={:index => 0}, &block)
678
672
  define_method("#{name}_element") do
679
673
  return call_block(&block) if block_given?
680
674
  platform.unordered_list_for(identifier.clone)
@@ -694,7 +688,7 @@ module PageObject
694
688
  # ordered_list(:top_five, :id => 'top')
695
689
  # # will generate 'top_five_element' and 'top_five?' methods
696
690
  #
697
- # @param [String] the name used for the generated methods
691
+ # @param [Symbol] the name used for the generated methods
698
692
  # @param [Hash] identifier how we find an ordered list. You can use a multiple paramaters
699
693
  # by combining of any of the following except xpath. The valid keys are:
700
694
  # * :class => Watir and Selenium
@@ -704,7 +698,7 @@ module PageObject
704
698
  # * :xpath => Watir and Selenium
705
699
  # @param optional block to be invoked when element method is called
706
700
  #
707
- def ordered_list(name, identifier=nil, &block)
701
+ def ordered_list(name, identifier={:index => 0}, &block)
708
702
  define_method("#{name}_element") do
709
703
  return call_block(&block) if block_given?
710
704
  platform.ordered_list_for(identifier.clone)
@@ -724,7 +718,7 @@ module PageObject
724
718
  # h1(:title, :id => 'title')
725
719
  # # will generate 'title', 'title_element', and 'title?' methods
726
720
  #
727
- # @param [String] the name used for the generated methods
721
+ # @param [Symbol] the name used for the generated methods
728
722
  # @param [Hash] identifier how we find a H1. You can use a multiple paramaters
729
723
  # by combining of any of the following except xpath. The valid keys are:
730
724
  # * :class => Watir and Selenium
@@ -734,7 +728,7 @@ module PageObject
734
728
  # * :xpath => Watir and Selenium
735
729
  # @param optional block to be invoked when element method is called
736
730
  #
737
- def h1(name, identifier=nil, &block)
731
+ def h1(name, identifier={:index => 0}, &block)
738
732
  define_method(name) do
739
733
  return platform.h1_text_for identifier.clone unless block_given?
740
734
  self.send("#{name}_element").text
@@ -758,7 +752,7 @@ module PageObject
758
752
  # h2(:title, :id => 'title')
759
753
  # # will generate 'title', 'title_element', and 'title?' methods
760
754
  #
761
- # @param [String] the name used for the generated methods
755
+ # @param [Symbol] the name used for the generated methods
762
756
  # @param [Hash] identifier how we find a H2. You can use a multiple paramaters
763
757
  # by combining of any of the following except xpath. The valid keys are:
764
758
  # * :class => Watir and Selenium
@@ -768,7 +762,7 @@ module PageObject
768
762
  # * :xpath => Watir and Selenium
769
763
  # @param optional block to be invoked when element method is called
770
764
  #
771
- def h2(name, identifier=nil, &block)
765
+ def h2(name, identifier={:index => 0}, &block)
772
766
  define_method(name) do
773
767
  return platform.h2_text_for identifier.clone unless block_given?
774
768
  self.send("#{name}_element").text
@@ -792,7 +786,7 @@ module PageObject
792
786
  # h3(:title, :id => 'title')
793
787
  # # will generate 'title', 'title_element', and 'title?' methods
794
788
  #
795
- # @param [String] the name used for the generated methods
789
+ # @param [Symbol] the name used for the generated methods
796
790
  # @param [Hash] identifier how we find a H3. You can use a multiple paramaters
797
791
  # by combining of any of the following except xpath. The valid keys are:
798
792
  # * :class => Watir and Selenium
@@ -802,7 +796,7 @@ module PageObject
802
796
  # * :xpath => Watir and Selenium
803
797
  # @param optional block to be invoked when element method is called
804
798
  #
805
- def h3(name, identifier=nil, &block)
799
+ def h3(name, identifier={:index => 0}, &block)
806
800
  define_method(name) do
807
801
  return platform.h3_text_for identifier.clone unless block_given?
808
802
  self.send("#{name}_element").text
@@ -826,7 +820,7 @@ module PageObject
826
820
  # h4(:title, :id => 'title')
827
821
  # # will generate 'title', 'title_element', and 'title?' methods
828
822
  #
829
- # @param [String] the name used for the generated methods
823
+ # @param [Symbol] the name used for the generated methods
830
824
  # @param [Hash] identifier how we find a H4. You can use a multiple paramaters
831
825
  # by combining of any of the following except xpath. The valid keys are:
832
826
  # * :class => Watir and Selenium
@@ -836,7 +830,7 @@ module PageObject
836
830
  # * :xpath => Watir and Selenium
837
831
  # @param optional block to be invoked when element method is called
838
832
  #
839
- def h4(name, identifier=nil, &block)
833
+ def h4(name, identifier={:index => 0}, &block)
840
834
  define_method(name) do
841
835
  return platform.h4_text_for identifier.clone unless block_given?
842
836
  self.send("#{name}_element").text
@@ -860,7 +854,7 @@ module PageObject
860
854
  # h5(:title, :id => 'title')
861
855
  # # will generate 'title', 'title_element', and 'title?' methods
862
856
  #
863
- # @param [String] the name used for the generated methods
857
+ # @param [Symbol] the name used for the generated methods
864
858
  # @param [Hash] identifier how we find a H5. You can use a multiple paramaters
865
859
  # by combining of any of the following except xpath. The valid keys are:
866
860
  # * :class => Watir and Selenium
@@ -870,7 +864,7 @@ module PageObject
870
864
  # * :xpath => Watir and Selenium
871
865
  # @param optional block to be invoked when element method is called
872
866
  #
873
- def h5(name, identifier=nil, &block)
867
+ def h5(name, identifier={:index => 0}, &block)
874
868
  define_method(name) do
875
869
  return platform.h5_text_for identifier.clone unless block_given?
876
870
  self.send("#{name}_element").text
@@ -894,7 +888,7 @@ module PageObject
894
888
  # h6(:title, :id => 'title')
895
889
  # # will generate 'title', 'title_element', and 'title?' methods
896
890
  #
897
- # @param [String] the name used for the generated methods
891
+ # @param [Symbol] the name used for the generated methods
898
892
  # @param [Hash] identifier how we find a H6. You can use a multiple paramaters
899
893
  # by combining of any of the following except xpath. The valid keys are:
900
894
  # * :class => Watir and Selenium
@@ -904,7 +898,7 @@ module PageObject
904
898
  # * :xpath => Watir and Selenium
905
899
  # @param optional block to be invoked when element method is called
906
900
  #
907
- def h6(name, identifier=nil, &block)
901
+ def h6(name, identifier={:index => 0}, &block)
908
902
  define_method(name) do
909
903
  return platform.h6_text_for identifier.clone unless block_given?
910
904
  self.send("#{name}_element").text
@@ -928,7 +922,7 @@ module PageObject
928
922
  # paragraph(:title, :id => 'title')
929
923
  # # will generate 'title', 'title_element', and 'title?' methods
930
924
  #
931
- # @param [String] the name used for the generated methods
925
+ # @param [Symbol] the name used for the generated methods
932
926
  # @param [Hash] identifier how we find a paragraph. You can use a multiple paramaters
933
927
  # by combining of any of the following except xpath. The valid keys are:
934
928
  # * :class => Watir and Selenium
@@ -938,7 +932,7 @@ module PageObject
938
932
  # * :xpath => Watir and Selenium
939
933
  # @param optional block to be invoked when element method is called
940
934
  #
941
- def paragraph(name, identifier=nil, &block)
935
+ def paragraph(name, identifier={:index => 0}, &block)
942
936
  define_method(name) do
943
937
  return platform.paragraph_text_for identifier.clone unless block_given?
944
938
  self.send("#{name}_element").text
@@ -962,7 +956,7 @@ module PageObject
962
956
  # file_field(:the_file, :id => 'file_to_upload')
963
957
  # # will generate 'the_file=', 'the_file_element', and 'the_file?' methods
964
958
  #
965
- # @param [String] the name used for the generated methods
959
+ # @param [Symbol] the name used for the generated methods
966
960
  # @param [Hash] identifier how we find a file_field. You can use a multiple paramaters
967
961
  # by combining of any of the following except xpath. The valid keys are:
968
962
  # * :class => Watir and Selenium
@@ -973,7 +967,7 @@ module PageObject
973
967
  # * :xpath => Watir and Selenium
974
968
  # @param optional block to be invoked when element method is called
975
969
  #
976
- def file_field(name, identifier=nil, &block)
970
+ def file_field(name, identifier={:index => 0}, &block)
977
971
  define_method("#{name}=") do |value|
978
972
  return platform.file_field_value_set(identifier.clone, value) unless block_given?
979
973
  self.send("#{name}_element").value = value
@@ -996,7 +990,7 @@ module PageObject
996
990
  # label(:message, :id => 'message')
997
991
  # # will generate 'message', 'message_element', and 'message?' methods
998
992
  #
999
- # @param [String] the name used for the generated methods
993
+ # @param [Symbol] the name used for the generated methods
1000
994
  # @param [Hash] identifier how we find a label. You can use a multiple paramaters
1001
995
  # by combining of any of the following except xpath. The valid keys are:
1002
996
  # * :class => Watir and Selenium
@@ -1007,7 +1001,7 @@ module PageObject
1007
1001
  # * :xpath => Watir and Selenium
1008
1002
  # @param optional block to be invoked when element method is called
1009
1003
  #
1010
- def label(name, identifier=nil, &block)
1004
+ def label(name, identifier={:index => 0}, &block)
1011
1005
  define_method(name) do
1012
1006
  return platform.label_text_for identifier.clone unless block_given?
1013
1007
  self.send("#{name}_element").text
@@ -1028,10 +1022,11 @@ module PageObject
1028
1022
  # to retrieve an element, and another to check the element's existence.
1029
1023
  #
1030
1024
  # @example
1031
- # element(:title, :id => 'title')
1025
+ # element(:title, :header, :id => 'title')
1032
1026
  # # will generate 'title', 'title_element', and 'title?' methods
1033
1027
  #
1034
- # @param [String] the name used for the generated methods
1028
+ # @param [Symbol] the name used for the generated methods
1029
+ # @param [Symbol] the name of the tag for the element
1035
1030
  # @param [Hash] identifier how we find an element. You can use a multiple paramaters
1036
1031
  # by combining of any of the following except xpath. The valid keys are:
1037
1032
  # * :class => Watir and Selenium
@@ -1041,7 +1036,7 @@ module PageObject
1041
1036
  # * :xpath => Watir and Selenium
1042
1037
  # @param optional block to be invoked when element method is called
1043
1038
  #
1044
- def element(name, tag, identifier=nil, &block)
1039
+ def element(name, tag, identifier={:index => 0}, &block)
1045
1040
  define_method("#{name}") do
1046
1041
  self.send("#{name}_element").text
1047
1042
  end