page-object 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.
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