page-object 1.1.0 → 1.1.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (63) hide show
  1. checksums.yaml +4 -4
  2. data/.coveralls.yml +1 -0
  3. data/.gitignore +1 -0
  4. data/.travis.yml +7 -2
  5. data/ChangeLog +14 -1
  6. data/Gemfile +4 -2
  7. data/README.md +2 -0
  8. data/Rakefile +5 -1
  9. data/features/async.feature +3 -12
  10. data/features/audio.feature +10 -14
  11. data/features/element.feature +21 -0
  12. data/features/gxt_table_extension.feature +1 -2
  13. data/features/html/multi_elements.html +11 -10
  14. data/features/html/static_elements.html +3 -16
  15. data/features/html/widgets.html +20 -0
  16. data/features/italic.feature +21 -0
  17. data/features/multi_elements.feature +28 -22
  18. data/features/sample-app/public/audio_video.html +23 -0
  19. data/features/step_definitions/audio_steps.rb +6 -6
  20. data/features/step_definitions/element_steps.rb +28 -0
  21. data/features/step_definitions/gxt_table_steps.rb +1 -6
  22. data/features/step_definitions/italic_steps.rb +12 -0
  23. data/features/step_definitions/multi_elements_steps.rb +13 -0
  24. data/features/step_definitions/page_traversal_steps.rb +4 -0
  25. data/features/step_definitions/table_row_steps.rb +23 -0
  26. data/features/step_definitions/video_steps.rb +3 -3
  27. data/features/support/audio_video_page.rb +24 -0
  28. data/features/support/page.rb +20 -20
  29. data/features/support/url_helper.rb +4 -0
  30. data/features/table_row.feature +43 -0
  31. data/features/video.feature +1 -5
  32. data/lib/page-object.rb +4 -0
  33. data/lib/page-object/accessors.rb +88 -4
  34. data/lib/page-object/elements.rb +2 -1
  35. data/lib/page-object/elements/element.rb +5 -5
  36. data/lib/page-object/elements/italic.rb +11 -0
  37. data/lib/page-object/elements/ordered_list.rb +1 -1
  38. data/lib/page-object/elements/unordered_list.rb +1 -1
  39. data/lib/page-object/locator_generator.rb +2 -0
  40. data/lib/page-object/platforms/selenium_webdriver/element.rb +37 -0
  41. data/lib/page-object/platforms/selenium_webdriver/ordered_list.rb +10 -8
  42. data/lib/page-object/platforms/selenium_webdriver/page_object.rb +51 -1
  43. data/lib/page-object/platforms/selenium_webdriver/unordered_list.rb +7 -9
  44. data/lib/page-object/platforms/watir_webdriver/element.rb +45 -1
  45. data/lib/page-object/platforms/watir_webdriver/ordered_list.rb +9 -4
  46. data/lib/page-object/platforms/watir_webdriver/page_object.rb +81 -50
  47. data/lib/page-object/platforms/watir_webdriver/unordered_list.rb +11 -5
  48. data/lib/page-object/version.rb +1 -1
  49. data/lib/page-object/widgets.rb +1 -1
  50. data/page-object.gemspec +1 -0
  51. data/spec/page-object/element_locators_spec.rb +124 -80
  52. data/spec/page-object/elements/element_spec.rb +83 -1
  53. data/spec/page-object/elements/italic_spec.rb +29 -0
  54. data/spec/page-object/elements/media_spec.rb +63 -0
  55. data/spec/page-object/elements/ordered_list_spec.rb +6 -22
  56. data/spec/page-object/elements/selenium_element_spec.rb +41 -0
  57. data/spec/page-object/elements/unordered_list_spec.rb +4 -21
  58. data/spec/page-object/elements/video_spec.rb +27 -0
  59. data/spec/page-object/elements/watir_element_spec.rb +48 -0
  60. data/spec/page-object/selenium_accessors_spec.rb +28 -9
  61. data/spec/page-object/watir_accessors_spec.rb +57 -1
  62. data/spec/spec_helper.rb +3 -6
  63. metadata +39 -3
@@ -20,16 +20,22 @@ module PageObject
20
20
  children.size
21
21
  end
22
22
 
23
+ #
24
+ # Return the ListItem objects that are children of the
25
+ # UnorderedList
26
+ #
27
+ def list_items
28
+ children.collect do |obj|
29
+ Object::PageObject::Elements::ListItem.new(obj, :platform => :watir_webdriver)
30
+ end
31
+ end
32
+
23
33
  private
24
34
 
25
35
  def children
26
- list_items.find_all { |item| item.parent == element }
27
- end
28
-
29
- def list_items
30
36
  element.uls(:xpath => child_xpath)
31
37
  end
32
-
38
+
33
39
  end
34
40
  end
35
41
  end
@@ -1,4 +1,4 @@
1
1
  module PageObject
2
2
  # @private
3
- VERSION = "1.1.0"
3
+ VERSION = "1.1.1"
4
4
  end
@@ -99,7 +99,7 @@ module PageObject
99
99
 
100
100
  def self.define_multiple_nested_accessor(base, widget_tag)
101
101
  base.send(:define_method, "#{widget_tag}_elements") do |*args|
102
- identifier = args[0] ? args[0] : {:index => 0}
102
+ identifier = args[0] ? args[0] : {}
103
103
  @platform.send("#{widget_tag}s_for", identifier.clone)
104
104
  end
105
105
  end
@@ -28,5 +28,6 @@ Gem::Specification.new do |s|
28
28
  s.add_development_dependency 'cucumber', '>= 1.3.0'
29
29
  s.add_development_dependency 'yard', '>= 0.7.2'
30
30
  s.add_development_dependency 'rack', '>= 1.0'
31
+ s.add_development_dependency 'coveralls', '~> 0.8.1'
31
32
 
32
33
  end
@@ -10,7 +10,7 @@ describe PageObject::ElementLocators do
10
10
  context "when using Watir" do
11
11
  let(:watir_browser) { mock_watir_browser }
12
12
  let(:watir_page_object) { ElementLocatorsTestPageObject.new(watir_browser) }
13
-
13
+
14
14
  it "should find a button element" do
15
15
  expect(watir_browser).to receive(:button).with(:id => 'blah').and_return(watir_browser)
16
16
  element = watir_page_object.button_element(:id => 'blah')
@@ -32,7 +32,7 @@ describe PageObject::ElementLocators do
32
32
  expect(watir_browser).to receive(:buttons).with({}).and_return([watir_browser])
33
33
  watir_page_object.button_elements
34
34
  end
35
-
35
+
36
36
  it "should find a text field element" do
37
37
  expect(watir_browser).to receive(:text_field).with(:id => 'blah').and_return(watir_browser)
38
38
  element = watir_page_object.text_field_element(:id => 'blah')
@@ -56,7 +56,7 @@ describe PageObject::ElementLocators do
56
56
  expect(watir_browser).to receive(:tag_name).and_return('input')
57
57
  watir_page_object.text_field_elements
58
58
  end
59
-
59
+
60
60
  it "should find a hidden field element" do
61
61
  expect(watir_browser).to receive(:hidden).with(:id => 'blah').and_return(watir_browser)
62
62
  element = watir_page_object.hidden_field_element(:id => 'blah')
@@ -78,7 +78,7 @@ describe PageObject::ElementLocators do
78
78
  expect(watir_browser).to receive(:hiddens).with({}).and_return([watir_browser])
79
79
  watir_page_object.hidden_field_elements
80
80
  end
81
-
81
+
82
82
  it "should find a text area element" do
83
83
  expect(watir_browser).to receive(:textarea).with(:id => 'blah').and_return(watir_browser)
84
84
  element = watir_page_object.text_area_element(:id => 'blah')
@@ -93,14 +93,14 @@ describe PageObject::ElementLocators do
93
93
  it "should find all text area elements" do
94
94
  expect(watir_browser).to receive(:textareas).with(:id => 'blah').and_return([watir_browser])
95
95
  elements = watir_page_object.text_area_elements(:id => 'blah')
96
- expect(elements[0]).to be_instance_of PageObject::Elements::TextArea
96
+ expect(elements[0]).to be_instance_of PageObject::Elements::TextArea
97
97
  end
98
98
 
99
99
  it "should find all text area elements using no identifier" do
100
100
  expect(watir_browser).to receive(:textareas).with({}).and_return([watir_browser])
101
101
  watir_page_object.text_area_elements
102
102
  end
103
-
103
+
104
104
  it "should find a select list element" do
105
105
  expect(watir_browser).to receive(:select_list).with(:id => 'blah').and_return(watir_browser)
106
106
  element = watir_page_object.select_list_element(:id => 'blah')
@@ -115,14 +115,14 @@ describe PageObject::ElementLocators do
115
115
  it "should find all select list elements" do
116
116
  expect(watir_browser).to receive(:select_lists).with(:id => 'blah').and_return([watir_browser])
117
117
  elements = watir_page_object.select_list_elements(:id => 'blah')
118
- expect(elements[0]).to be_instance_of PageObject::Elements::SelectList
118
+ expect(elements[0]).to be_instance_of PageObject::Elements::SelectList
119
119
  end
120
120
 
121
121
  it "should find all select list elements using no identifier" do
122
122
  expect(watir_browser).to receive(:select_lists).with({}).and_return([watir_browser])
123
123
  watir_page_object.select_list_elements
124
124
  end
125
-
125
+
126
126
  it "should find a link element" do
127
127
  expect(watir_browser).to receive(:link).with(:id => 'blah').and_return(watir_browser)
128
128
  element = watir_page_object.link_element(:id => 'blah')
@@ -137,14 +137,14 @@ describe PageObject::ElementLocators do
137
137
  it "should find all link elements" do
138
138
  expect(watir_browser).to receive(:links).with(:id => 'blah').and_return([watir_browser])
139
139
  elements = watir_page_object.link_elements(:id => 'blah')
140
- expect(elements[0]).to be_instance_of PageObject::Elements::Link
140
+ expect(elements[0]).to be_instance_of PageObject::Elements::Link
141
141
  end
142
142
 
143
143
  it "should find all links using no identifier" do
144
144
  expect(watir_browser).to receive(:links).with({}).and_return([watir_browser])
145
145
  watir_page_object.link_elements
146
146
  end
147
-
147
+
148
148
  it "should find a check box" do
149
149
  expect(watir_browser).to receive(:checkbox).with(:id => 'blah').and_return(watir_browser)
150
150
  element = watir_page_object.checkbox_element(:id => 'blah')
@@ -159,14 +159,14 @@ describe PageObject::ElementLocators do
159
159
  it "should find all check box elements" do
160
160
  expect(watir_browser).to receive(:checkboxes).with(:id => 'blah').and_return([watir_browser])
161
161
  elements = watir_page_object.checkbox_elements(:id => 'blah')
162
- expect(elements[0]).to be_instance_of PageObject::Elements::CheckBox
162
+ expect(elements[0]).to be_instance_of PageObject::Elements::CheckBox
163
163
  end
164
164
 
165
165
  it "should find all check box elements using no identifier" do
166
166
  expect(watir_browser).to receive(:checkboxes).with({}).and_return([watir_browser])
167
167
  watir_page_object.checkbox_elements
168
168
  end
169
-
169
+
170
170
  it "should find a radio button" do
171
171
  expect(watir_browser).to receive(:radio).with(:id => 'blah').and_return(watir_browser)
172
172
  element = watir_page_object.radio_button_element(:id => 'blah')
@@ -181,14 +181,14 @@ describe PageObject::ElementLocators do
181
181
  it "should find all radio buttons" do
182
182
  expect(watir_browser).to receive(:radios).with(:id => 'blah').and_return([watir_browser])
183
183
  elements = watir_page_object.radio_button_elements(:id => 'blah')
184
- expect(elements[0]).to be_instance_of PageObject::Elements::RadioButton
184
+ expect(elements[0]).to be_instance_of PageObject::Elements::RadioButton
185
185
  end
186
186
 
187
187
  it "should find all radio buttons using no identifier" do
188
188
  expect(watir_browser).to receive(:radios).with({}).and_return([watir_browser])
189
189
  watir_page_object.radio_button_elements
190
190
  end
191
-
191
+
192
192
  it "should find a div" do
193
193
  expect(watir_browser).to receive(:div).with(:id => 'blah').and_return(watir_browser)
194
194
  element = watir_page_object.div_element(:id => 'blah')
@@ -203,14 +203,14 @@ describe PageObject::ElementLocators do
203
203
  it "should find all div elements" do
204
204
  expect(watir_browser).to receive(:divs).with(:id => 'blah').and_return([watir_browser])
205
205
  elements = watir_page_object.div_elements(:id => 'blah')
206
- expect(elements[0]).to be_instance_of PageObject::Elements::Div
206
+ expect(elements[0]).to be_instance_of PageObject::Elements::Div
207
207
  end
208
208
 
209
209
  it "should find all div elements using no identifier" do
210
210
  expect(watir_browser).to receive(:divs).with({}).and_return([watir_browser])
211
211
  watir_page_object.div_elements
212
212
  end
213
-
213
+
214
214
  it "should find a span" do
215
215
  expect(watir_browser).to receive(:span).with(:id => 'blah').and_return(watir_browser)
216
216
  element = watir_page_object.span_element(:id => 'blah')
@@ -225,14 +225,14 @@ describe PageObject::ElementLocators do
225
225
  it "should find all span elements" do
226
226
  expect(watir_browser).to receive(:spans).with(:id => 'blah').and_return([watir_browser])
227
227
  elements = watir_page_object.span_elements(:id => 'blah')
228
- expect(elements[0]).to be_instance_of PageObject::Elements::Span
228
+ expect(elements[0]).to be_instance_of PageObject::Elements::Span
229
229
  end
230
230
 
231
231
  it "should find all span elements using no identifier" do
232
232
  expect(watir_browser).to receive(:spans).with({}).and_return([watir_browser])
233
233
  watir_page_object.span_elements
234
234
  end
235
-
235
+
236
236
  it "should find a table" do
237
237
  expect(watir_browser).to receive(:table).with(:id => 'blah').and_return(watir_browser)
238
238
  element = watir_page_object.table_element(:id => 'blah')
@@ -247,14 +247,14 @@ describe PageObject::ElementLocators do
247
247
  it "should find all table elements" do
248
248
  expect(watir_browser).to receive(:tables).with(:id => 'blah').and_return([watir_browser])
249
249
  elements = watir_page_object.table_elements(:id => 'blah')
250
- expect(elements[0]).to be_instance_of PageObject::Elements::Table
250
+ expect(elements[0]).to be_instance_of PageObject::Elements::Table
251
251
  end
252
252
 
253
253
  it "should find all table elements using no identifier" do
254
254
  expect(watir_browser).to receive(:tables).with({}).and_return([watir_browser])
255
255
  watir_page_object.table_elements
256
256
  end
257
-
257
+
258
258
  it "should find a table cell" do
259
259
  expect(watir_browser).to receive(:td).with(:id => 'blah').and_return(watir_browser)
260
260
  element = watir_page_object.cell_element(:id => 'blah')
@@ -269,14 +269,36 @@ describe PageObject::ElementLocators do
269
269
  it "should find all table cells" do
270
270
  expect(watir_browser).to receive(:tds).with(:id => 'blah').and_return([watir_browser])
271
271
  elements = watir_page_object.cell_elements(:id => 'blah')
272
- expect(elements[0]).to be_instance_of PageObject::Elements::TableCell
272
+ expect(elements[0]).to be_instance_of PageObject::Elements::TableCell
273
273
  end
274
274
 
275
275
  it "should find all table cells using no identifier" do
276
276
  expect(watir_browser).to receive(:tds).with({}).and_return([watir_browser])
277
277
  watir_page_object.cell_elements
278
278
  end
279
-
279
+
280
+ it "should find a table row" do
281
+ expect(watir_browser).to receive(:tr).with(:id => 'blah').and_return(watir_browser)
282
+ element = watir_page_object.row_element(:id => 'blah')
283
+ expect(element).to be_instance_of PageObject::Elements::TableRow
284
+ end
285
+
286
+ it "should find a table row using a default identifier" do
287
+ expect(watir_browser).to receive(:tr).with(:index => 0).and_return(watir_browser)
288
+ watir_page_object.row_element
289
+ end
290
+
291
+ it "should find all table row" do
292
+ expect(watir_browser).to receive(:trs).with(:id => 'blah').and_return([watir_browser])
293
+ elements = watir_page_object.row_elements(:id => 'blah')
294
+ expect(elements[0]).to be_instance_of PageObject::Elements::TableRow
295
+ end
296
+
297
+ it "should find all table rows using no identifier" do
298
+ expect(watir_browser).to receive(:trs).with({}).and_return([watir_browser])
299
+ watir_page_object.row_elements
300
+ end
301
+
280
302
  it "should find an image" do
281
303
  expect(watir_browser).to receive(:image).with(:id => 'blah').and_return(watir_browser)
282
304
  element = watir_page_object.image_element(:id => 'blah')
@@ -298,7 +320,7 @@ describe PageObject::ElementLocators do
298
320
  expect(watir_browser).to receive(:images).with({}).and_return([watir_browser])
299
321
  watir_page_object.image_elements
300
322
  end
301
-
323
+
302
324
  it "should find a form" do
303
325
  expect(watir_browser).to receive(:form).with(:id => 'blah').and_return(watir_browser)
304
326
  element = watir_page_object.form_element(:id => 'blah')
@@ -320,7 +342,7 @@ describe PageObject::ElementLocators do
320
342
  expect(watir_browser).to receive(:forms).with({}).and_return([watir_browser])
321
343
  watir_page_object.form_elements
322
344
  end
323
-
345
+
324
346
  it "should find a list item" do
325
347
  expect(watir_browser).to receive(:li).with(:id => 'blah').and_return(watir_browser)
326
348
  element = watir_page_object.list_item_element(:id => 'blah')
@@ -335,14 +357,14 @@ describe PageObject::ElementLocators do
335
357
  it "should find all list items" do
336
358
  expect(watir_browser).to receive(:lis).with(:id => 'blah').and_return([watir_browser])
337
359
  elements = watir_page_object.list_item_elements(:id => 'blah')
338
- expect(elements[0]).to be_instance_of PageObject::Elements::ListItem
360
+ expect(elements[0]).to be_instance_of PageObject::Elements::ListItem
339
361
  end
340
362
 
341
363
  it "should find all list items using no parameter" do
342
364
  expect(watir_browser).to receive(:lis).with({}).and_return([watir_browser])
343
365
  watir_page_object.list_item_elements
344
366
  end
345
-
367
+
346
368
  it "should find an unordered list" do
347
369
  expect(watir_browser).to receive(:ul).with(:id => 'blah').and_return(watir_browser)
348
370
  element = watir_page_object.unordered_list_element(:id => 'blah')
@@ -357,14 +379,14 @@ describe PageObject::ElementLocators do
357
379
  it "should find all unordered lists" do
358
380
  expect(watir_browser).to receive(:uls).with(:id => 'blah').and_return([watir_browser])
359
381
  elements = watir_page_object.unordered_list_elements(:id => 'blah')
360
- expect(elements[0]).to be_instance_of PageObject::Elements::UnorderedList
382
+ expect(elements[0]).to be_instance_of PageObject::Elements::UnorderedList
361
383
  end
362
384
 
363
385
  it "should find all unordered lists using no parameters" do
364
386
  expect(watir_browser).to receive(:uls).with({}).and_return([watir_browser])
365
387
  watir_page_object.unordered_list_elements
366
388
  end
367
-
389
+
368
390
  it "should find an ordered list" do
369
391
  expect(watir_browser).to receive(:ol).with(:id => 'blah').and_return(watir_browser)
370
392
  element = watir_page_object.ordered_list_element(:id => 'blah')
@@ -379,14 +401,14 @@ describe PageObject::ElementLocators do
379
401
  it "should find all ordered lists" do
380
402
  expect(watir_browser).to receive(:ols).with(:id => 'blah').and_return([watir_browser])
381
403
  elements = watir_page_object.ordered_list_elements(:id => 'blah')
382
- expect(elements[0]).to be_instance_of PageObject::Elements::OrderedList
404
+ expect(elements[0]).to be_instance_of PageObject::Elements::OrderedList
383
405
  end
384
406
 
385
407
  it "should find all orderd lists using no parameters" do
386
408
  expect(watir_browser).to receive(:ols).with({}).and_return([watir_browser])
387
409
  watir_page_object.ordered_list_elements
388
410
  end
389
-
411
+
390
412
  it "should find a h1 element" do
391
413
  expect(watir_browser).to receive(:h1).with(:id => 'blah').and_return(watir_browser)
392
414
  element = watir_page_object.h1_element(:id => 'blah')
@@ -401,7 +423,7 @@ describe PageObject::ElementLocators do
401
423
  it "should find all h1 elements" do
402
424
  expect(watir_browser).to receive(:h1s).with(:id => 'blah').and_return([watir_browser])
403
425
  elements = watir_page_object.h1_elements(:id => 'blah')
404
- expect(elements[0]).to be_instance_of PageObject::Elements::Heading
426
+ expect(elements[0]).to be_instance_of PageObject::Elements::Heading
405
427
  end
406
428
 
407
429
  it "should find all h1 elements using no parameters" do
@@ -423,7 +445,7 @@ describe PageObject::ElementLocators do
423
445
  it "should find all h2 elements" do
424
446
  expect(watir_browser).to receive(:h2s).with(:id => 'blah').and_return([watir_browser])
425
447
  elements = watir_page_object.h2_elements(:id => 'blah')
426
- expect(elements[0]).to be_instance_of PageObject::Elements::Heading
448
+ expect(elements[0]).to be_instance_of PageObject::Elements::Heading
427
449
  end
428
450
 
429
451
  it "should find all h2 elements using no identifier" do
@@ -445,7 +467,7 @@ describe PageObject::ElementLocators do
445
467
  it "should find all h3 elements" do
446
468
  expect(watir_browser).to receive(:h3s).with(:id => 'blah').and_return([watir_browser])
447
469
  elements = watir_page_object.h3_elements(:id => 'blah')
448
- expect(elements[0]).to be_instance_of PageObject::Elements::Heading
470
+ expect(elements[0]).to be_instance_of PageObject::Elements::Heading
449
471
  end
450
472
 
451
473
  it "should find all h3 elements using no identifiers" do
@@ -467,7 +489,7 @@ describe PageObject::ElementLocators do
467
489
  it "should find all h4 elements" do
468
490
  expect(watir_browser).to receive(:h4s).with(:id => 'blah').and_return([watir_browser])
469
491
  elements = watir_page_object.h4_elements(:id => 'blah')
470
- expect(elements[0]).to be_instance_of PageObject::Elements::Heading
492
+ expect(elements[0]).to be_instance_of PageObject::Elements::Heading
471
493
  end
472
494
 
473
495
  it "should find all h4 elements using no identifier" do
@@ -489,7 +511,7 @@ describe PageObject::ElementLocators do
489
511
  it "should find all h5 elements" do
490
512
  expect(watir_browser).to receive(:h5s).with(:id => 'blah').and_return([watir_browser])
491
513
  elements = watir_page_object.h5_elements(:id => 'blah')
492
- expect(elements[0]).to be_instance_of PageObject::Elements::Heading
514
+ expect(elements[0]).to be_instance_of PageObject::Elements::Heading
493
515
  end
494
516
 
495
517
  it "should find all h5 elements using no identifier" do
@@ -511,7 +533,7 @@ describe PageObject::ElementLocators do
511
533
  it "should find all h6 elements" do
512
534
  expect(watir_browser).to receive(:h6s).with(:id => 'blah').and_return([watir_browser])
513
535
  elements = watir_page_object.h6_elements(:id => 'blah')
514
- expect(elements[0]).to be_instance_of PageObject::Elements::Heading
536
+ expect(elements[0]).to be_instance_of PageObject::Elements::Heading
515
537
  end
516
538
 
517
539
  it "should find all h6 elements using no identifier" do
@@ -533,7 +555,7 @@ describe PageObject::ElementLocators do
533
555
  it "should find all paragraph elements" do
534
556
  expect(watir_browser).to receive(:ps).with(:id => 'blah').and_return([watir_browser])
535
557
  elements = watir_page_object.paragraph_elements(:id => 'blah')
536
- expect(elements[0]).to be_instance_of PageObject::Elements::Paragraph
558
+ expect(elements[0]).to be_instance_of PageObject::Elements::Paragraph
537
559
  end
538
560
 
539
561
  it "should find all paragraph elements using no identifier" do
@@ -606,7 +628,7 @@ describe PageObject::ElementLocators do
606
628
  expect(watir_browser).to receive(:areas).with({}).and_return([watir_browser])
607
629
  watir_page_object.area_elements
608
630
  end
609
-
631
+
610
632
  it "should find a canvas element" do
611
633
  expect(watir_browser).to receive(:canvas).with(:id => 'blah').and_return(watir_browser)
612
634
  element = watir_page_object.canvas_element(:id => 'blah')
@@ -705,12 +727,34 @@ describe PageObject::ElementLocators do
705
727
  expect(watir_browser).to receive(:bs).with({}).and_return([watir_browser])
706
728
  watir_page_object.b_elements
707
729
  end
730
+
731
+ it "should find an i element" do
732
+ expect(watir_browser).to receive(:i).with(:id => 'blah').and_return(watir_browser)
733
+ element = watir_page_object.i_element(:id => 'blah')
734
+ expect(element).to be_instance_of PageObject::Elements::Italic
735
+ end
736
+
737
+ it "should find an i element using a default identifier" do
738
+ expect(watir_browser).to receive(:i).with(:index => 0).and_return(watir_browser)
739
+ watir_page_object.i_element
740
+ end
741
+
742
+ it "should find all i elements" do
743
+ expect(watir_browser).to receive(:is).with(:id => 'blah').and_return([watir_browser])
744
+ elements = watir_page_object.i_elements(:id => 'blah')
745
+ expect(elements[0]).to be_instance_of PageObject::Elements::Italic
746
+ end
747
+
748
+ it "should find all i elements using no parameters" do
749
+ expect(watir_browser).to receive(:is).with({}).and_return([watir_browser])
750
+ watir_page_object.i_elements
751
+ end
708
752
  end
709
753
 
710
754
  context "when using Selenium" do
711
755
  let(:selenium_browser) { mock_selenium_browser }
712
756
  let(:selenium_page_object) { ElementLocatorsTestPageObject.new(selenium_browser) }
713
-
757
+
714
758
  it "should find a button element" do
715
759
  expect(selenium_browser).to receive(:find_element).with(:id, 'blah').and_return(selenium_browser)
716
760
  element = selenium_page_object.button_element(:id => 'blah')
@@ -744,10 +788,10 @@ describe PageObject::ElementLocators do
744
788
  it "should find all hidden field elements" do
745
789
  expect(selenium_browser).to receive(:find_elements).with(:id, "blah").and_return([selenium_browser])
746
790
  elements = selenium_page_object.hidden_field_elements(:id => 'blah')
747
- expect(elements[0]).to be_instance_of PageObject::Elements::HiddenField
791
+ expect(elements[0]).to be_instance_of PageObject::Elements::HiddenField
748
792
 
749
793
  end
750
-
794
+
751
795
  it "should find a text area element" do
752
796
  expect(selenium_browser).to receive(:find_element).with(:id, 'blah').and_return(selenium_browser)
753
797
  element = selenium_page_object.text_area_element(:id => 'blah')
@@ -757,9 +801,9 @@ describe PageObject::ElementLocators do
757
801
  it "should find all text area elements" do
758
802
  expect(selenium_browser).to receive(:find_elements).with(:id, 'blah').and_return([selenium_browser])
759
803
  elements = selenium_page_object.text_area_elements(:id => 'blah')
760
- expect(elements[0]).to be_instance_of PageObject::Elements::TextArea
804
+ expect(elements[0]).to be_instance_of PageObject::Elements::TextArea
761
805
  end
762
-
806
+
763
807
  it "should find a select list element" do
764
808
  expect(selenium_browser).to receive(:find_element).with(:id, 'blah').and_return(selenium_browser)
765
809
  element = selenium_page_object.select_list_element(:id => 'blah')
@@ -769,9 +813,9 @@ describe PageObject::ElementLocators do
769
813
  it "should find all select list elements" do
770
814
  expect(selenium_browser).to receive(:find_elements).with(:id, 'blah').and_return([selenium_browser])
771
815
  elements = selenium_page_object.select_list_elements(:id => 'blah')
772
- expect(elements[0]).to be_instance_of PageObject::Elements::SelectList
816
+ expect(elements[0]).to be_instance_of PageObject::Elements::SelectList
773
817
  end
774
-
818
+
775
819
  it "should find a link element" do
776
820
  expect(selenium_browser).to receive(:find_element).with(:id, 'blah').and_return(selenium_browser)
777
821
  element = selenium_page_object.link_element(:id => 'blah')
@@ -781,9 +825,9 @@ describe PageObject::ElementLocators do
781
825
  it "should find all link elements" do
782
826
  expect(selenium_browser).to receive(:find_elements).with(:id, 'blah').and_return([selenium_browser])
783
827
  elements = selenium_page_object.link_elements(:id => 'blah')
784
- expect(elements[0]).to be_instance_of PageObject::Elements::Link
828
+ expect(elements[0]).to be_instance_of PageObject::Elements::Link
785
829
  end
786
-
830
+
787
831
  it "should find a check box" do
788
832
  expect(selenium_browser).to receive(:find_element).with(:id, 'blah').and_return(selenium_browser)
789
833
  element = selenium_page_object.checkbox_element(:id => 'blah')
@@ -793,9 +837,9 @@ describe PageObject::ElementLocators do
793
837
  it "should find all checkbox elements" do
794
838
  expect(selenium_browser).to receive(:find_elements).with(:id, 'blah').and_return([selenium_browser])
795
839
  elements = selenium_page_object.checkbox_elements(:id => 'blah')
796
- expect(elements[0]).to be_instance_of PageObject::Elements::CheckBox
840
+ expect(elements[0]).to be_instance_of PageObject::Elements::CheckBox
797
841
  end
798
-
842
+
799
843
  it "should find a radio button" do
800
844
  expect(selenium_browser).to receive(:find_element).with(:id, 'blah').and_return(selenium_browser)
801
845
  element = selenium_page_object.radio_button_element(:id => 'blah')
@@ -805,9 +849,9 @@ describe PageObject::ElementLocators do
805
849
  it "should find all radio button elements" do
806
850
  expect(selenium_browser).to receive(:find_elements).with(:id, 'blah').and_return([selenium_browser])
807
851
  elements = selenium_page_object.radio_button_elements(:id => 'blah')
808
- expect(elements[0]).to be_instance_of PageObject::Elements::RadioButton
852
+ expect(elements[0]).to be_instance_of PageObject::Elements::RadioButton
809
853
  end
810
-
854
+
811
855
  it "should find a div" do
812
856
  expect(selenium_browser).to receive(:find_element).with(:id, 'blah').and_return(selenium_browser)
813
857
  element = selenium_page_object.div_element(:id => 'blah')
@@ -817,9 +861,9 @@ describe PageObject::ElementLocators do
817
861
  it "should find all div elements" do
818
862
  expect(selenium_browser).to receive(:find_elements).with(:id, 'blah').and_return([selenium_browser])
819
863
  elements = selenium_page_object.div_elements(:id => 'blah')
820
- expect(elements[0]).to be_instance_of PageObject::Elements::Div
864
+ expect(elements[0]).to be_instance_of PageObject::Elements::Div
821
865
  end
822
-
866
+
823
867
  it "should find a span" do
824
868
  expect(selenium_browser).to receive(:find_element).with(:id, 'blah').and_return(selenium_browser)
825
869
  element = selenium_page_object.span_element(:id => 'blah')
@@ -829,21 +873,21 @@ describe PageObject::ElementLocators do
829
873
  it "should find all span elements" do
830
874
  expect(selenium_browser).to receive(:find_elements).with(:id, 'blah').and_return([selenium_browser])
831
875
  elements = selenium_page_object.span_elements(:id => 'blah')
832
- expect(elements[0]).to be_instance_of PageObject::Elements::Span
876
+ expect(elements[0]).to be_instance_of PageObject::Elements::Span
833
877
  end
834
-
878
+
835
879
  it "should find a table" do
836
880
  expect(selenium_browser).to receive(:find_element).with(:id, 'blah').and_return(selenium_browser)
837
881
  element = selenium_page_object.table_element(:id => 'blah')
838
882
  expect(element).to be_instance_of PageObject::Elements::Table
839
883
  end
840
-
884
+
841
885
  it "should find all table elements" do
842
886
  expect(selenium_browser).to receive(:find_elements).with(:id, 'blah').and_return([selenium_browser])
843
887
  elements = selenium_page_object.table_elements(:id => 'blah')
844
- expect(elements[0]).to be_instance_of PageObject::Elements::Table
888
+ expect(elements[0]).to be_instance_of PageObject::Elements::Table
845
889
  end
846
-
890
+
847
891
  it "should find a table cell" do
848
892
  expect(selenium_browser).to receive(:find_element).with(:id, 'blah').and_return(selenium_browser)
849
893
  element = selenium_page_object.cell_element(:id => 'blah')
@@ -853,7 +897,7 @@ describe PageObject::ElementLocators do
853
897
  it "should find all table cell elements" do
854
898
  expect(selenium_browser).to receive(:find_elements).with(:id, 'blah').and_return([selenium_browser])
855
899
  elements = selenium_page_object.cell_elements(:id => 'blah')
856
- expect(elements[0]).to be_instance_of PageObject::Elements::TableCell
900
+ expect(elements[0]).to be_instance_of PageObject::Elements::TableCell
857
901
  end
858
902
 
859
903
  it "should find an image" do
@@ -867,13 +911,13 @@ describe PageObject::ElementLocators do
867
911
  elements = selenium_page_object.image_elements(:id => 'blah')
868
912
  expect(elements[0]).to be_instance_of PageObject::Elements::Image
869
913
  end
870
-
914
+
871
915
  it "should find a form" do
872
916
  expect(selenium_browser).to receive(:find_element).with(:id, 'blah').and_return(selenium_browser)
873
917
  element = selenium_page_object.form_element(:id => 'blah')
874
918
  expect(element).to be_instance_of PageObject::Elements::Form
875
919
  end
876
-
920
+
877
921
  it "should find all forms" do
878
922
  expect(selenium_browser).to receive(:find_elements).with(:id, 'blah').and_return([selenium_browser])
879
923
  elements = selenium_page_object.form_elements(:id => 'blah')
@@ -889,9 +933,9 @@ describe PageObject::ElementLocators do
889
933
  it "should find all list items" do
890
934
  expect(selenium_browser).to receive(:find_elements).with(:id, 'blah').and_return([selenium_browser])
891
935
  element = selenium_page_object.list_item_elements(:id => 'blah')
892
- expect(element[0]).to be_instance_of PageObject::Elements::ListItem
936
+ expect(element[0]).to be_instance_of PageObject::Elements::ListItem
893
937
  end
894
-
938
+
895
939
  it "should find an unordered list" do
896
940
  expect(selenium_browser).to receive(:find_element).with(:id, 'blah').and_return(selenium_browser)
897
941
  element = selenium_page_object.unordered_list_element(:id => 'blah')
@@ -901,9 +945,9 @@ describe PageObject::ElementLocators do
901
945
  it "should find all unordered lists" do
902
946
  expect(selenium_browser).to receive(:find_elements).with(:id, 'blah').and_return([selenium_browser])
903
947
  elements = selenium_page_object.unordered_list_elements(:id => 'blah')
904
- expect(elements[0]).to be_instance_of PageObject::Elements::UnorderedList
948
+ expect(elements[0]).to be_instance_of PageObject::Elements::UnorderedList
905
949
  end
906
-
950
+
907
951
  it "should find an ordered list" do
908
952
  expect(selenium_browser).to receive(:find_element).with(:id, 'blah').and_return(selenium_browser)
909
953
  element = selenium_page_object.ordered_list_element(:id => 'blah')
@@ -913,9 +957,9 @@ describe PageObject::ElementLocators do
913
957
  it "should find all orderd list elements" do
914
958
  expect(selenium_browser).to receive(:find_elements).with(:id, 'blah').and_return([selenium_browser])
915
959
  elements = selenium_page_object.ordered_list_elements(:id => 'blah')
916
- expect(elements[0]).to be_instance_of PageObject::Elements::OrderedList
960
+ expect(elements[0]).to be_instance_of PageObject::Elements::OrderedList
917
961
  end
918
-
962
+
919
963
  it "should find a h1 element" do
920
964
  expect(selenium_browser).to receive(:find_element).with(:id, 'blah').and_return(selenium_browser)
921
965
  element = selenium_page_object.h1_element(:id => 'blah')
@@ -925,7 +969,7 @@ describe PageObject::ElementLocators do
925
969
  it "should find all h1 elements" do
926
970
  expect(selenium_browser).to receive(:find_elements).with(:id, "blah").and_return([selenium_browser])
927
971
  elements = selenium_page_object.h1_elements(:id => 'blah')
928
- expect(elements[0]).to be_instance_of PageObject::Elements::Heading
972
+ expect(elements[0]).to be_instance_of PageObject::Elements::Heading
929
973
  end
930
974
 
931
975
  it "should find a h2 element" do
@@ -937,7 +981,7 @@ describe PageObject::ElementLocators do
937
981
  it "should find all h2 elements" do
938
982
  expect(selenium_browser).to receive(:find_elements).with(:id, 'blah').and_return([selenium_browser])
939
983
  elements = selenium_page_object.h2_elements(:id => 'blah')
940
- expect(elements[0]).to be_instance_of PageObject::Elements::Heading
984
+ expect(elements[0]).to be_instance_of PageObject::Elements::Heading
941
985
  end
942
986
 
943
987
  it "should find a h3 element" do
@@ -949,7 +993,7 @@ describe PageObject::ElementLocators do
949
993
  it "should find all h3 elements" do
950
994
  expect(selenium_browser).to receive(:find_elements).with(:id, 'blah').and_return([selenium_browser])
951
995
  elements = selenium_page_object.h3_elements(:id => 'blah')
952
- expect(elements[0]).to be_instance_of PageObject::Elements::Heading
996
+ expect(elements[0]).to be_instance_of PageObject::Elements::Heading
953
997
  end
954
998
 
955
999
  it "should find a h4 element" do
@@ -973,7 +1017,7 @@ describe PageObject::ElementLocators do
973
1017
  it "should find all h5 elements" do
974
1018
  expect(selenium_browser).to receive(:find_elements).with(:id, 'blah').and_return([selenium_browser])
975
1019
  elements = selenium_page_object.h5_elements(:id => 'blah')
976
- expect(elements[0]).to be_instance_of PageObject::Elements::Heading
1020
+ expect(elements[0]).to be_instance_of PageObject::Elements::Heading
977
1021
  end
978
1022
 
979
1023
  it "should find a h6 element" do
@@ -985,7 +1029,7 @@ describe PageObject::ElementLocators do
985
1029
  it "should find all h6 elements" do
986
1030
  expect(selenium_browser).to receive(:find_elements).with(:id, 'blah').and_return([selenium_browser])
987
1031
  elements = selenium_page_object.h6_elements(:id => 'blah')
988
- expect(elements[0]).to be_instance_of PageObject::Elements::Heading
1032
+ expect(elements[0]).to be_instance_of PageObject::Elements::Heading
989
1033
  end
990
1034
 
991
1035
  it "should find a paragraph element" do
@@ -997,7 +1041,7 @@ describe PageObject::ElementLocators do
997
1041
  it "should find all paragraph elements" do
998
1042
  expect(selenium_browser).to receive(:find_elements).with(:id, 'blah').and_return([selenium_browser])
999
1043
  elements = selenium_page_object.paragraph_elements(:id => 'blah')
1000
- expect(elements[0]).to be_instance_of PageObject::Elements::Paragraph
1044
+ expect(elements[0]).to be_instance_of PageObject::Elements::Paragraph
1001
1045
  end
1002
1046
 
1003
1047
  it "should find a label" do
@@ -1010,7 +1054,7 @@ describe PageObject::ElementLocators do
1010
1054
  expect(selenium_browser).to receive(:find_elements).with(:id, 'blah').and_return([selenium_browser])
1011
1055
  elements = selenium_page_object.label_elements(:id => 'blah')
1012
1056
  expect(elements[0]).to be_instance_of PageObject::Elements::Label
1013
- end
1057
+ end
1014
1058
 
1015
1059
  it "should find a file field element" do
1016
1060
  expect(selenium_browser).to receive(:find_element).with(:id, 'blah').and_return(selenium_browser)
@@ -1083,17 +1127,17 @@ describe PageObject::ElementLocators do
1083
1127
  expect(selenium_browser).to receive(:find_elements).with(:tag_name, 'audio').and_return([selenium_browser])
1084
1128
  selenium_page_object.audio_elements
1085
1129
  end
1086
- it "should find a b element" do
1130
+ it "should find an i element" do
1087
1131
  expect(selenium_browser).to receive(:find_element).with(:id,'blah').and_return(selenium_browser)
1088
- element = selenium_page_object.b_element(:id => 'blah')
1089
- expect(element).to be_instance_of PageObject::Elements::Bold
1132
+ element = selenium_page_object.i_element(:id => 'blah')
1133
+ expect(element).to be_instance_of PageObject::Elements::Italic
1090
1134
  end
1091
1135
 
1092
1136
 
1093
- it "should find all b elements" do
1137
+ it "should find all i elements" do
1094
1138
  expect(selenium_browser).to receive(:find_elements).with(:id, 'blah').and_return([selenium_browser])
1095
- elements = selenium_page_object.b_elements(:id => 'blah')
1096
- expect(elements[0]).to be_instance_of PageObject::Elements::Bold
1139
+ elements = selenium_page_object.i_elements(:id => 'blah')
1140
+ expect(elements[0]).to be_instance_of PageObject::Elements::Italic
1097
1141
  end
1098
1142
 
1099
1143
  end