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.
data/ChangeLog CHANGED
@@ -1,3 +1,13 @@
1
+ === Version 0.6.5 / 2012-4-12
2
+ * Enhancements
3
+ * Added a page level element method to return a generic Element object
4
+ * Added a method to retrieve all file fields on a page
5
+ * Updated all accessor methods to take a default identifier of {:index => 0}
6
+ * Updated all page level element locators to take a default identifier of {:index => 0}
7
+ * Updated all page level multi-element locators to take a default identifier of {}
8
+ * Updated deprecation warning to print to stderr (Thanks Josh Adell)
9
+ * Updated to use selenium-webdriver 2.21.0
10
+
1
11
  === Version 0.6.4 / 2012-3-27
2
12
  * Enhancements
3
13
  * Added support for finding the following elements by :css
@@ -17,8 +17,6 @@ Feature: Hidden Fields
17
17
  | class |
18
18
  | name |
19
19
  | xpath |
20
- | css |
21
- | tag_name |
22
20
  | index |
23
21
  | text |
24
22
  | value |
@@ -136,5 +136,9 @@
136
136
  <p class="p">Paragraph Two</p>
137
137
  <p class="p">Paragraph Three</p>
138
138
 
139
+ <input type="file" class="file_field_class" title="File Field 1" />
140
+ <input type="file" class="file_field_class" title="File Field 2" />
141
+ <input type="file" class="file_field_class" title="File Field 3" />
142
+
139
143
  </body>
140
144
  </html>
@@ -3,173 +3,288 @@ Feature: Multi Elements
3
3
  Background:
4
4
  Given I am on the multi elements page
5
5
 
6
- Scenario: Selecting buttons
6
+ Scenario: Selecting buttons using an identifier
7
7
  When I select the buttons with class "button"
8
8
  Then I should have 3 buttons
9
9
  And the value of button 1 should be "Button 1"
10
10
  And the value of button 2 should be "Button 2"
11
11
  And the value of button 3 should be "Button 3"
12
+
13
+ Scenario: Selecting buttons using no identifier
14
+ When I select all buttons using no identifier
15
+ Then I should have 3 buttons
12
16
 
13
- Scenario: Selecting text_fields
17
+ Scenario: Selecting text fields using an identifier
14
18
  When I select the text fields with class "textfield"
15
19
  Then I should have 3 text fields
16
20
  And the value of text field 1 should be "text 1"
17
21
  And the value of text field 2 should be "text 2"
18
22
  And the value of text field 3 should be "text 3"
23
+
24
+ Scenario: Selecting text fields using no identifier
25
+ When I select all text fields using no identifier
26
+ Then I should have 3 text fields
19
27
 
20
- Scenario: Selecting hidden_fields
28
+ Scenario: Selecting hidden fields using an identifier
21
29
  When I select the hidden fields with class "hiddenfield"
22
30
  Then I should have 3 hidden fields
23
31
  And the value of hidden field 1 should be "hidden 1"
24
32
  And the value of hidden field 2 should be "hidden 2"
25
33
  And the value of hidden field 3 should be "hidden 3"
26
34
 
27
- Scenario: Selecting text_areas
35
+ Scenario: Selecting hidden fields using no identifier
36
+ When I select all hidden fields using no identifier
37
+ Then I should have 3 hidden fields
38
+
39
+ Scenario: Selecting text areas using an identifier
28
40
  When I select the text areas with class "textarea"
29
41
  Then I should have 3 text areas
30
42
  And the value of text area 1 should be "textarea 1"
31
43
  And the value of text area 2 should be "textarea 2"
32
44
  And the value of text area 3 should be "textarea 3"
33
45
 
34
- Scenario: Selecting select_lists
46
+ Scenario: Selecting text areas using no identifier
47
+ When I select text areas using no identifier
48
+ Then I should have 3 text areas
49
+
50
+ Scenario: Selecting select lists using an identifier
35
51
  When I select the select lists with class "selectlist"
36
52
  Then I should have 3 select lists
37
53
  And the value of select list 1 should be "selectlist 1"
38
54
  And the value of select list 2 should be "selectlist 2"
39
55
  And the value of select list 3 should be "selectlist 3"
40
56
 
41
- Scenario: Selecting links
57
+ Scenario: Selecting select lists using no identifier
58
+ When I select select lists using no identifier
59
+ Then I should have 3 select lists
60
+
61
+ Scenario: Selecting links using an identifier
42
62
  When I select the link with class "link"
43
63
  Then I should have 3 links
44
64
  And the text of link 1 should be "link 1"
45
65
  And the text of link 2 should be "link 2"
46
66
  And the text of link 3 should be "link 3"
47
67
 
48
- Scenario: Selecting checkboxes
68
+ Scenario: Selecting links using no identifier
69
+ When I select links using no identifier
70
+ Then I should have 3 links
71
+
72
+ Scenario: Selecting checkboxes using an identifier
49
73
  When I select the check boxes with class "checkbox"
50
74
  Then I should have 3 checkboxes
51
75
  And the value of checkbox 1 should be "checkbox 1"
52
76
  And the value of checkbox 2 should be "checkbox 2"
53
77
  And the value of checkbox 3 should be "checkbox 3"
78
+
79
+ Scenario: Selecting checkboxes using no identifier
80
+ When I select checboxes using no identifier
81
+ Then I should have 3 checkboxes
54
82
 
55
- Scenario: Selecting radio buttons
83
+ Scenario: Selecting radio buttons using an identifier
56
84
  When I select the radio button with class "radio"
57
85
  Then I should have 3 radio buttons
58
86
  And the value of radio button 1 should be "radio 1"
59
87
  And the value of radio button 2 should be "radio 2"
60
88
  And the value of radio button 3 should be "radio 3"
61
89
 
62
- Scenario: Selecting divs
90
+ Scenario: Selecting radio buttons using no identifier
91
+ When I select radio buttons using no identifier
92
+ Then I should have 3 radio buttons
93
+
94
+ Scenario: Selecting divs using an identifier
63
95
  When I select the div with class "div"
64
96
  Then I should have 3 divs
65
97
  And the text of div 1 should be "Div 1"
66
98
  And the text of div 2 should be "Div 2"
67
99
  And the text of div 3 should be "Div 3"
68
100
 
69
- Scenario: Selecting spans
101
+ Scenario: Selecting divs using no identifier
102
+ When I select divs using no identifier
103
+ Then I should have 3 divs
104
+
105
+ Scenario: Selecting spans using an identifier
70
106
  When I select the spans with class "span"
71
107
  Then I should have 3 spans
72
108
  And the text of span 1 should be "Span 1"
73
109
  And the text of span 2 should be "Span 2"
74
110
  And the text of span 3 should be "Span 3"
75
111
 
76
- Scenario: Selecting tables
112
+ Scenario: Selecting spans using no identifier
113
+ When I select spans using no identifier
114
+ Then I should have 3 spans
115
+
116
+ Scenario: Selecting tables using an identifier
77
117
  When I select the tables with class "table"
78
118
  Then I should have 3 tables
79
119
  And the first row first column for table 1 should have "Data 1"
80
120
  And the first row first column for table 2 should have "Data 4"
81
121
  And the first row first column for table 3 should have "Data 7"
82
122
 
83
- Scenario: Selecting cells
123
+ Scenario: Selecting tables using no identifier
124
+ When I select tables using no identifier
125
+ Then I should have 3 tables
126
+
127
+ Scenario: Selecting cells using an identifier
84
128
  When I select the cells with class "td"
85
129
  Then I should have 3 cells
86
130
  And the text for cell 1 should be "Data 1"
87
131
  And the text for cell 2 should be "Data 2"
88
132
  And the text for cell 3 should be "Data 3"
89
133
 
90
- Scenario: Selecting images
134
+ Scenario: Selecting cells using no identifier
135
+ When I select the cells using no identifier
136
+ Then I should have 9 cells
137
+
138
+ Scenario: Selecting images using an identifier
91
139
  When I select the images with class "image"
92
140
  Then I should have 3 images
93
141
  And the alt for image 1 should be "image 1"
94
142
  And the alt for image 2 should be "image 2"
95
143
  And the alt for image 3 should be "image 3"
144
+
145
+ Scenario: Selecting images using no identifier
146
+ When I select the images using no identifier
147
+ Then I should have 3 images
96
148
 
97
- Scenario: Selecting forms
149
+ Scenario: Selecting forms using an identifier
98
150
  When I select the forms with class "form"
99
151
  Then I should have 3 forms
100
152
  And the action for form 1 should be "form1"
101
153
  And the action for form 2 should be "form2"
102
154
  And the action for form 3 should be "form3"
155
+
156
+ Scenario: Selecting forms using no identifier
157
+ When I select the forms using no identifier
158
+ Then I should have 3 forms
103
159
 
104
- Scenario: Selecting list items
160
+ Scenario: Selecting list items using an identifier
105
161
  When I select the list items with class "li"
106
162
  Then I should have 3 list items
107
163
  And the text for list item 1 should be "Item One"
108
164
  And the text for list item 2 should be "Item Two"
109
165
  And the text for list item 3 should be "Item Three"
166
+
167
+ Scenario: Selecting list items using no identifier
168
+ When I select the list items using no identifier
169
+ Then I should have 8 list items
110
170
 
111
- Scenario: Selecting unordered lists
171
+ Scenario: Selecting unordered lists using an identifier
112
172
  When I select the unordered list with class "ul"
113
173
  Then I should have 3 unordered lists
114
174
  And the text for the first item in unordered list 1 should be "Item One"
115
175
  And the text for the first item in unordered list 2 should be "Item Four"
116
176
  And the text for the first item in unordered list 3 should be "Item Five"
117
177
 
118
- Scenario: Selecting ordered lists
178
+ Scenario: Selecting unordered lists using no identifier
179
+ When I select the unordered list using no parameter
180
+ Then I should have 3 unordered lists
181
+
182
+ Scenario: Selecting ordered lists using an identifier
119
183
  When I select the ordered lists with class "ol"
120
184
  Then I should have 3 ordered lists
121
185
  And the text for the first item in ordered list 1 should be "Number One"
122
186
  And the text for the first item in ordered list 2 should be "Number Two"
123
187
  And the text for the first item in ordered list 3 should be "Number Three"
188
+
189
+ Scenario: Selecting ordered lists using no identifier
190
+ When I select the ordered lists using no identifier
191
+ Then I should have 3 ordered lists
124
192
 
125
- Scenario: Selecting h1s
193
+ Scenario: Selecting h1s using an identifier
126
194
  When I select the h1s with class "h1"
127
195
  Then I should have 3 h1s
128
196
  And the text for h1 1 should be "H1 One"
129
197
  And the text for h1 2 should be "H1 Two"
130
198
  And the text for h1 3 should be "H1 Three"
199
+
200
+ Scenario: Selecting h1s using no identifier
201
+ When I select h1s using no identifier
202
+ Then I should have 3 h1s
131
203
 
132
- Scenario: Selecting h2s
204
+ Scenario: Selecting h2s using an identifier
133
205
  When I select the h2s with the class "h2"
134
206
  Then I should have 3 h2s
135
207
  And the text for h2 1 should be "H2 One"
136
208
  And the text for h2 2 should be "H2 Two"
137
209
  And the text for h2 3 should be "H2 Three"
210
+
211
+ Scenario: Selecting h2s using no identifier
212
+ When I select h2s using no identifier
213
+ Then I should have 3 h2s
138
214
 
139
- Scenario: Selecting h3s
215
+ Scenario: Selecting h3s using an identifier
140
216
  When I select the h3s with the class "h3"
141
217
  Then I should have 3 h3s
142
218
  And the text for h3 1 should be "H3 One"
143
219
  And the text for h3 2 should be "H3 Two"
144
220
  And the text for h3 3 should be "H3 Three"
221
+
222
+ Scenario: Selecting h3s using no identifier
223
+ When I select h3s using no identifier
224
+ Then I should have 3 h3s
145
225
 
146
- Scenario: Selecting h4s
226
+ Scenario: Selecting h4s using an identifier
147
227
  When I select the h4s with the class "h4"
148
228
  Then I should have 3 h4s
149
229
  And the text for H4 1 should be "H4 One"
150
230
  And the text for H4 2 should be "H4 Two"
151
231
  And the text for H4 3 should be "H4 Three"
152
232
 
153
- Scenario: Selecting h5s
233
+ Scenario: Selecting h4s using no identifier
234
+ When I select h4s using no identifier
235
+ Then I should have 3 h4s
236
+
237
+ Scenario: Selecting h5s using an identifier
154
238
  When I select the h5s with the class "h5"
155
239
  Then I should have 3 h5s
156
240
  And the text for H5 1 should be "H5 One"
157
241
  And the text for H5 2 should be "H5 Two"
158
242
  And the text for H5 3 should be "H5 Three"
243
+
244
+ Scenario: Selecting h5s using no identifier
245
+ When I select h5s using no identifier
246
+ Then I should have 3 h5s
159
247
 
160
- Scenario: Selecting h6s
248
+ Scenario: Selecting h6s using an identifier
161
249
  When I select the h6s with the class "h6"
162
250
  Then I should have 3 h6s
163
251
  And the text for H6 1 should be "H6 One"
164
252
  And the text for H6 2 should be "H6 Two"
165
253
  And the text for H6 3 should be "H6 Three"
254
+
255
+ Scenario: Selecting h6s using no identifier
256
+ When I select h6s using no identifier
257
+ Then I should have 3 h6s
166
258
 
167
- Scenario: Selecting paragraphs
259
+ Scenario: Selecting paragraphs using an identifier
168
260
  When I select the paragraph with class "p"
169
261
  Then I should have 3 paragraphs
170
262
  And the text for paragraph 1 should be "Paragraph One"
171
263
  And the text for paragraph 2 should be "Paragraph Two"
172
264
  And the text for paragraph 3 should be "Paragraph Three"
173
265
 
266
+ Scenario: Selecting paragraphs using no identifier
267
+ When I select paragraphs using no identifier
268
+ Then I should have 3 paragraphs
269
+
270
+ Scenario: Selecting labels with an identifier
271
+ When I select the labels with class "label"
272
+ Then I should have 3 labels
273
+ And the text for label 1 should be "Label 1"
274
+ And the text for label 2 should be "Label 2"
275
+ And the text for label 3 should be "Label 3"
276
+
277
+ Scenario: Selecting labels using no identifier
278
+ When I select labels using no identifier
279
+ Then I should have 3 labels
174
280
 
281
+ Scenario: Selecting file fields with an identifier
282
+ When I select the file fields with class "file_field_class"
283
+ Then I should have 3 file fields
284
+ And the title for file field 1 should be "File Field 1"
285
+ And the title for file field 2 should be "File Field 2"
286
+ And the title for file field 3 should be "File Field 3"
175
287
 
288
+ Scenario: Selecting file fields using no identifier
289
+ When I select the file fields using no identifier
290
+ Then I should have 3 file fields
@@ -295,3 +295,111 @@ end
295
295
  Then /^the text for paragraph (\d+) should be "([^\"]*)"$/ do |para_num, text|
296
296
  @elements[para_num.to_i - 1].text.should == text
297
297
  end
298
+
299
+ When /^I select all buttons using no identifier$/ do
300
+ @elements = @page.button_elements
301
+ end
302
+
303
+ When /^I select all text fields using no identifier$/ do
304
+ @elements = @page.text_field_elements
305
+ end
306
+
307
+ When /^I select all hidden fields using no identifier$/ do
308
+ @elements = @page.hidden_field_elements
309
+ end
310
+
311
+ When /^I select text areas using no identifier$/ do
312
+ @elements = @page.text_area_elements
313
+ end
314
+
315
+ When /^I select select lists using no identifier$/ do
316
+ @elements = @page.select_list_elements
317
+ end
318
+
319
+ When /^I select links using no identifier$/ do
320
+ @elements = @page.link_elements
321
+ end
322
+
323
+ When /^I select checboxes using no identifier$/ do
324
+ @elements = @page.checkbox_elements
325
+ end
326
+
327
+ When /^I select radio buttons using no identifier$/ do
328
+ @elements = @page.radio_button_elements
329
+ end
330
+
331
+ When /^I select divs using no identifier$/ do
332
+ @elements = @page.div_elements
333
+ end
334
+
335
+ When /^I select spans using no identifier$/ do
336
+ @elements = @page.span_elements
337
+ end
338
+
339
+ When /^I select tables using no identifier$/ do
340
+ @elements = @page.table_elements
341
+ end
342
+
343
+ When /^I select the cells using no identifier$/ do
344
+ @elements = @page.cell_elements
345
+ end
346
+
347
+ When /^I select the images using no identifier$/ do
348
+ @elements = @page.image_elements
349
+ end
350
+
351
+ When /^I select the forms using no identifier$/ do
352
+ @elements = @page.form_elements
353
+ end
354
+
355
+ When /^I select the list items using no identifier$/ do
356
+ @elements = @page.list_item_elements
357
+ end
358
+
359
+ When /^I select the unordered list using no parameter$/ do
360
+ @elements = @page.unordered_list_elements
361
+ end
362
+
363
+ When /^I select the ordered lists using no identifier$/ do
364
+ @elements = @page.ordered_list_elements
365
+ end
366
+
367
+ When /^I select h(\d+)s using no identifier$/ do |num|
368
+ @elements = @page.send "h#{num}_elements"
369
+ end
370
+
371
+ When /^I select paragraphs using no identifier$/ do
372
+ @elements = @page.paragraph_elements
373
+ end
374
+
375
+ When /^I select the labels with class "([^\"]*)"$/ do |class_name|
376
+ @elements = @page.label_elements(:class => class_name)
377
+ end
378
+
379
+ Then /^I should have (\d+) labels$/ do |num_labels|
380
+ @elements.size.should == num_labels.to_i
381
+ end
382
+
383
+ Then /^the text for label (\d+) should be "([^\"]*)"$/ do |label_num, text|
384
+ @elements[label_num.to_i - 1].text.should == text
385
+ end
386
+
387
+ When /^I select labels using no identifier$/ do
388
+ @elements = @page.label_elements
389
+ end
390
+
391
+ When /^I select the file fields with class "([^\"]*)"$/ do |class_name|
392
+ @elements = @page.file_field_elements(:class => class_name)
393
+ end
394
+
395
+ Then /^I should have (\d+) file fields$/ do |num_file_fields|
396
+ @elements.size.should == num_file_fields.to_i
397
+ end
398
+
399
+ Then /^the title for file field (\d+) should be "([^\"]*)"$/ do |file_field_num, title|
400
+ @elements[file_field_num.to_i - 1].attribute('title').should == title
401
+ end
402
+
403
+ When /^I select the file fields using no identifier$/ do
404
+ @elements = @page.file_field_elements
405
+ end