page-object 0.6.4 → 0.6.5
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.
- data/ChangeLog +10 -0
- data/features/hidden_field.feature +0 -2
- data/features/html/multi_elements.html +4 -0
- data/features/multi_elements.feature +139 -24
- data/features/step_definitions/multi_elements_steps.rb +108 -0
- data/features/text_area.feature +1 -3
- data/features/text_field.feature +0 -2
- data/lib/page-object/accessors.rb +53 -58
- data/lib/page-object/element_locators.rb +187 -104
- data/lib/page-object/elements/element.rb +7 -7
- data/lib/page-object/elements/hidden_field.rb +2 -10
- data/lib/page-object/elements/text_area.rb +0 -16
- data/lib/page-object/elements/text_field.rb +2 -10
- data/lib/page-object/platforms/selenium_webdriver/null_selenium_element.rb +28 -0
- data/lib/page-object/platforms/selenium_webdriver/page_object.rb +8 -0
- data/lib/page-object/platforms/watir_webdriver/page_object.rb +10 -1
- data/lib/page-object/version.rb +1 -1
- data/page-object.gemspec +1 -1
- data/spec/page-object/accessors_spec.rb +180 -0
- data/spec/page-object/element_locators_spec.rb +281 -2
- data/spec/page-object/elements/hidden_field_spec.rb +2 -12
- data/spec/page-object/elements/text_area_spec.rb +2 -12
- data/spec/page-object/elements/text_field_spec.rb +2 -12
- metadata +16 -15
@@ -89,12 +89,12 @@ module PageObject
|
|
89
89
|
# delegate calls to driver element
|
90
90
|
def method_missing(*args, &block)
|
91
91
|
m = args.shift
|
92
|
-
puts "*** DEPRECATION WARNING"
|
93
|
-
puts "*** You are calling a method named #{m} at #{caller[0]}."
|
94
|
-
puts "*** This method does not exist in page-object so it is being passed to the driver."
|
95
|
-
puts "*** This feature will be removed in the near future."
|
96
|
-
puts "*** Please change your code to call the correct page-object method."
|
97
|
-
puts "*** If you are using functionality that does not exist in page-object please request it be added."
|
92
|
+
$stderr.puts "*** DEPRECATION WARNING"
|
93
|
+
$stderr.puts "*** You are calling a method named #{m} at #{caller[0]}."
|
94
|
+
$stderr.puts "*** This method does not exist in page-object so it is being passed to the driver."
|
95
|
+
$stderr.puts "*** This feature will be removed in the near future."
|
96
|
+
$stderr.puts "*** Please change your code to call the correct page-object method."
|
97
|
+
$stderr.puts "*** If you are using functionality that does not exist in page-object please request it be added."
|
98
98
|
begin
|
99
99
|
element.send m, *args, &block
|
100
100
|
rescue Exception => e
|
@@ -172,7 +172,7 @@ module PageObject
|
|
172
172
|
|
173
173
|
def self.identifier_for identifier, find_by, find_by_mapping
|
174
174
|
how, what = identifier.keys.first, identifier.values.first
|
175
|
-
return how => what if find_by.include? how
|
175
|
+
return how => what if find_by.include? how or how == :tag_name
|
176
176
|
return find_by_mapping[how] => what if find_by_mapping[how]
|
177
177
|
return nil => what
|
178
178
|
end
|
@@ -9,19 +9,11 @@ module PageObject
|
|
9
9
|
protected
|
10
10
|
|
11
11
|
def self.watir_finders
|
12
|
-
super + [:
|
13
|
-
end
|
14
|
-
|
15
|
-
def self.watir_mapping
|
16
|
-
super.merge({:css => :tag_name})
|
12
|
+
super + [:text, :value]
|
17
13
|
end
|
18
14
|
|
19
15
|
def self.selenium_finders
|
20
|
-
super + [:
|
21
|
-
end
|
22
|
-
|
23
|
-
def self.selenium_mapping
|
24
|
-
super.merge({:tag_name => :css})
|
16
|
+
super + [:value]
|
25
17
|
end
|
26
18
|
end
|
27
19
|
|
@@ -10,22 +10,6 @@ module PageObject
|
|
10
10
|
|
11
11
|
protected
|
12
12
|
|
13
|
-
def self.watir_finders
|
14
|
-
super + [:tag_name]
|
15
|
-
end
|
16
|
-
|
17
|
-
def self.watir_mapping
|
18
|
-
super.merge({:css => :tag_name})
|
19
|
-
end
|
20
|
-
|
21
|
-
def self.selenium_finders
|
22
|
-
super + [:css]
|
23
|
-
end
|
24
|
-
|
25
|
-
def self.selenium_mapping
|
26
|
-
super.merge({:tag_name => :css})
|
27
|
-
end
|
28
|
-
|
29
13
|
def include_platform_for platform
|
30
14
|
super
|
31
15
|
if platform[:platform] == :watir_webdriver
|
@@ -15,19 +15,11 @@ module PageObject
|
|
15
15
|
protected
|
16
16
|
|
17
17
|
def self.watir_finders
|
18
|
-
super + [:
|
19
|
-
end
|
20
|
-
|
21
|
-
def self.watir_mapping
|
22
|
-
super.merge({:css => :tag_name})
|
18
|
+
super + [:title]
|
23
19
|
end
|
24
20
|
|
25
21
|
def self.selenium_finders
|
26
|
-
super + [:
|
27
|
-
end
|
28
|
-
|
29
|
-
def self.selenium_mapping
|
30
|
-
super.merge({:tag_name => :css})
|
22
|
+
super + [:title]
|
31
23
|
end
|
32
24
|
|
33
25
|
def include_platform_for platform
|
@@ -0,0 +1,28 @@
|
|
1
|
+
module PageObject
|
2
|
+
module Platforms
|
3
|
+
module SeleniumWebDriver
|
4
|
+
class NullSeleniumElement
|
5
|
+
def exists?
|
6
|
+
false
|
7
|
+
end
|
8
|
+
|
9
|
+
def visible?
|
10
|
+
false
|
11
|
+
end
|
12
|
+
|
13
|
+
def nil?
|
14
|
+
true
|
15
|
+
end
|
16
|
+
|
17
|
+
def displayed?
|
18
|
+
false
|
19
|
+
end
|
20
|
+
|
21
|
+
def method_missing(meth, *args)
|
22
|
+
$stderr.puts "You are calling #{meth} on an element that does not yet exist."
|
23
|
+
raise Selenium::WebDriver::Error::NoSuchElementError
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
@@ -850,6 +850,13 @@ module PageObject
|
|
850
850
|
find_selenium_element(identifier, Elements::FileField, 'input', :type => 'file')
|
851
851
|
end
|
852
852
|
|
853
|
+
#
|
854
|
+
# platform method to return an array of file field elements
|
855
|
+
#
|
856
|
+
def file_fields_for(identifier)
|
857
|
+
find_selenium_elements(identifier, Elements::FileField, 'input', :type => 'file')
|
858
|
+
end
|
859
|
+
|
853
860
|
#
|
854
861
|
# platform method to retrieve a generic element
|
855
862
|
# See PageObject::Accessors#element
|
@@ -911,6 +918,7 @@ module PageObject
|
|
911
918
|
end
|
912
919
|
|
913
920
|
def supported_identifier(identifier, tag, additional)
|
921
|
+
return false if identifier.size == 0
|
914
922
|
return false if identifier[:index]
|
915
923
|
return false if identifier[:action] and tag == 'form'
|
916
924
|
return false if identifier[:alt] and tag == 'img'
|
@@ -207,7 +207,8 @@ module PageObject
|
|
207
207
|
# platform method to retrieve an array of text field elements
|
208
208
|
#
|
209
209
|
def text_fields_for(identifier)
|
210
|
-
find_watir_elements("text_fields(identifier)", Elements::TextField, identifier)
|
210
|
+
elements = find_watir_elements("text_fields(identifier)", Elements::TextField, identifier)
|
211
|
+
elements.select {|e| e.element.tag_name == 'input'}
|
211
212
|
end
|
212
213
|
|
213
214
|
#
|
@@ -798,6 +799,14 @@ module PageObject
|
|
798
799
|
find_watir_element("file_field(identifier)", Elements::FileField, identifier)
|
799
800
|
end
|
800
801
|
|
802
|
+
#
|
803
|
+
# platform method to retrieve an array of file field elements
|
804
|
+
#
|
805
|
+
def file_fields_for(identifier)
|
806
|
+
find_watir_elements("file_fields(identifier)", Elements::FileField, identifier)
|
807
|
+
|
808
|
+
end
|
809
|
+
|
801
810
|
#
|
802
811
|
# platform method to return a PageObject::Elements::Element element
|
803
812
|
# See PageObject::Accessors#elem
|
data/lib/page-object/version.rb
CHANGED
data/page-object.gemspec
CHANGED
@@ -20,7 +20,7 @@ Gem::Specification.new do |s|
|
|
20
20
|
s.require_paths = ["lib"]
|
21
21
|
|
22
22
|
s.add_dependency 'watir-webdriver', '>= 0.5.4'
|
23
|
-
s.add_dependency 'selenium-webdriver', '>= 2.
|
23
|
+
s.add_dependency 'selenium-webdriver', '>= 2.21.0'
|
24
24
|
|
25
25
|
s.add_development_dependency 'rspec', '>= 2.6.0'
|
26
26
|
s.add_development_dependency 'cucumber', '>= 1.1.0'
|
@@ -184,6 +184,185 @@ describe PageObject::Accessors do
|
|
184
184
|
end
|
185
185
|
end
|
186
186
|
|
187
|
+
describe "using default identifiers" do
|
188
|
+
class DefaultIdentifier
|
189
|
+
include PageObject
|
190
|
+
text_field(:default_tf)
|
191
|
+
hidden_field(:default_hf)
|
192
|
+
text_area(:default_ta)
|
193
|
+
select_list(:default_sl)
|
194
|
+
link(:default_link)
|
195
|
+
checkbox(:default_cb)
|
196
|
+
radio_button(:default_rb)
|
197
|
+
button(:default_but)
|
198
|
+
div(:default_div)
|
199
|
+
span(:default_span)
|
200
|
+
table(:default_tab)
|
201
|
+
cell(:default_cell)
|
202
|
+
image(:default_im)
|
203
|
+
form(:default_form)
|
204
|
+
list_item(:default_li)
|
205
|
+
unordered_list(:default_ul)
|
206
|
+
ordered_list(:default_ol)
|
207
|
+
h1(:default_h1)
|
208
|
+
h2(:default_h2)
|
209
|
+
h3(:default_h3)
|
210
|
+
h4(:default_h4)
|
211
|
+
h5(:default_h5)
|
212
|
+
h6(:default_h6)
|
213
|
+
paragraph(:default_p)
|
214
|
+
file_field(:default_ff)
|
215
|
+
label(:default_lab)
|
216
|
+
element(:default_el, :audio)
|
217
|
+
end
|
218
|
+
|
219
|
+
let(:default_identifier) { DefaultIdentifier.new(watir_browser) }
|
220
|
+
|
221
|
+
before(:each) do
|
222
|
+
watir_browser.should_receive(:exists?).and_return(true)
|
223
|
+
end
|
224
|
+
|
225
|
+
def mock_driver_for(tag)
|
226
|
+
watir_browser.should_receive(tag).with(:index => 0).and_return(watir_browser)
|
227
|
+
end
|
228
|
+
|
229
|
+
it "should work with a text_field" do
|
230
|
+
mock_driver_for :text_field
|
231
|
+
default_identifier.default_tf?
|
232
|
+
end
|
233
|
+
|
234
|
+
it "should work with a hidden field" do
|
235
|
+
mock_driver_for :hidden
|
236
|
+
default_identifier.default_hf?
|
237
|
+
end
|
238
|
+
|
239
|
+
it "should work with a text area" do
|
240
|
+
mock_driver_for :textarea
|
241
|
+
default_identifier.default_ta?
|
242
|
+
end
|
243
|
+
|
244
|
+
it "should work with a select list" do
|
245
|
+
mock_driver_for :select_list
|
246
|
+
default_identifier.default_sl?
|
247
|
+
end
|
248
|
+
|
249
|
+
it "should work with a link" do
|
250
|
+
mock_driver_for :link
|
251
|
+
default_identifier.default_link?
|
252
|
+
end
|
253
|
+
|
254
|
+
it "should work with a checkbox" do
|
255
|
+
mock_driver_for :checkbox
|
256
|
+
default_identifier.default_cb?
|
257
|
+
end
|
258
|
+
|
259
|
+
it "should work with a radio button" do
|
260
|
+
mock_driver_for :radio
|
261
|
+
default_identifier.default_rb?
|
262
|
+
end
|
263
|
+
|
264
|
+
it "should work with a button" do
|
265
|
+
mock_driver_for :button
|
266
|
+
default_identifier.default_but?
|
267
|
+
end
|
268
|
+
|
269
|
+
it "should work with a div" do
|
270
|
+
mock_driver_for :div
|
271
|
+
default_identifier.default_div?
|
272
|
+
end
|
273
|
+
|
274
|
+
it "should work with a span" do
|
275
|
+
mock_driver_for :span
|
276
|
+
default_identifier.default_span?
|
277
|
+
end
|
278
|
+
|
279
|
+
it "should work for a table" do
|
280
|
+
mock_driver_for :table
|
281
|
+
default_identifier.default_tab?
|
282
|
+
end
|
283
|
+
|
284
|
+
it "should work for a cell" do
|
285
|
+
mock_driver_for :td
|
286
|
+
default_identifier.default_cell?
|
287
|
+
end
|
288
|
+
|
289
|
+
it "should work for an image" do
|
290
|
+
mock_driver_for :image
|
291
|
+
default_identifier.default_im?
|
292
|
+
end
|
293
|
+
|
294
|
+
it "should work for a form" do
|
295
|
+
mock_driver_for :form
|
296
|
+
default_identifier.default_form?
|
297
|
+
end
|
298
|
+
|
299
|
+
it "should work for a list item" do
|
300
|
+
mock_driver_for :li
|
301
|
+
default_identifier.default_li?
|
302
|
+
end
|
303
|
+
|
304
|
+
it "should work for unordered lists" do
|
305
|
+
mock_driver_for :ul
|
306
|
+
default_identifier.default_ul?
|
307
|
+
end
|
308
|
+
|
309
|
+
it "should work for ordered lists" do
|
310
|
+
mock_driver_for :ol
|
311
|
+
default_identifier.default_ol?
|
312
|
+
end
|
313
|
+
|
314
|
+
it "should work for h1" do
|
315
|
+
mock_driver_for :h1
|
316
|
+
default_identifier.default_h1?
|
317
|
+
end
|
318
|
+
|
319
|
+
it "should work for h2" do
|
320
|
+
mock_driver_for :h2
|
321
|
+
default_identifier.default_h2?
|
322
|
+
end
|
323
|
+
|
324
|
+
it "should work for h3" do
|
325
|
+
mock_driver_for :h3
|
326
|
+
default_identifier.default_h3?
|
327
|
+
end
|
328
|
+
|
329
|
+
it "should work for a h4" do
|
330
|
+
mock_driver_for :h4
|
331
|
+
default_identifier.default_h4?
|
332
|
+
end
|
333
|
+
|
334
|
+
it "should work for a h5" do
|
335
|
+
mock_driver_for :h5
|
336
|
+
default_identifier.default_h5?
|
337
|
+
end
|
338
|
+
|
339
|
+
it "should work for a h6" do
|
340
|
+
mock_driver_for :h6
|
341
|
+
default_identifier.default_h6?
|
342
|
+
end
|
343
|
+
|
344
|
+
it "should work with a paragraph" do
|
345
|
+
mock_driver_for :p
|
346
|
+
default_identifier.default_p?
|
347
|
+
end
|
348
|
+
|
349
|
+
it "should work with a file_field" do
|
350
|
+
mock_driver_for :file_field
|
351
|
+
default_identifier.default_ff?
|
352
|
+
end
|
353
|
+
|
354
|
+
it "should work with a label" do
|
355
|
+
mock_driver_for :label
|
356
|
+
default_identifier.default_lab?
|
357
|
+
end
|
358
|
+
|
359
|
+
it "should work with an element" do
|
360
|
+
mock_driver_for :audio
|
361
|
+
default_identifier.default_el?
|
362
|
+
end
|
363
|
+
|
364
|
+
end
|
365
|
+
|
187
366
|
describe "link accessors" do
|
188
367
|
context "when called on a page object" do
|
189
368
|
it "should generate accessor methods" do
|
@@ -232,6 +411,7 @@ describe PageObject::Accessors do
|
|
232
411
|
watir_page_object.should respond_to(:first_name=)
|
233
412
|
watir_page_object.should respond_to(:first_name_element)
|
234
413
|
watir_page_object.should respond_to(:first_name_text_field)
|
414
|
+
watir_page_object.should respond_to(:first_name?)
|
235
415
|
end
|
236
416
|
|
237
417
|
it "should call a block on the element method when present" do
|
@@ -17,11 +17,21 @@ describe PageObject::ElementLocators do
|
|
17
17
|
element.should be_instance_of PageObject::Elements::Button
|
18
18
|
end
|
19
19
|
|
20
|
+
it "should find a button element using a default identifier" do
|
21
|
+
watir_browser.should_receive(:button).with(:index => 0).and_return(watir_browser)
|
22
|
+
watir_page_object.button_element
|
23
|
+
end
|
24
|
+
|
20
25
|
it "should find all button elements" do
|
21
26
|
watir_browser.should_receive(:buttons).with(:id => 'blah').and_return([watir_browser])
|
22
27
|
elements = watir_page_object.button_elements(:id => 'blah')
|
23
28
|
elements[0].should be_instance_of PageObject::Elements::Button
|
24
29
|
end
|
30
|
+
|
31
|
+
it "should find all buttons with no identifier" do
|
32
|
+
watir_browser.should_receive(:buttons).with({}).and_return([watir_browser])
|
33
|
+
watir_page_object.button_elements
|
34
|
+
end
|
25
35
|
|
26
36
|
it "should find a text field element" do
|
27
37
|
watir_browser.should_receive(:text_field).with(:id => 'blah').and_return(watir_browser)
|
@@ -29,11 +39,23 @@ describe PageObject::ElementLocators do
|
|
29
39
|
element.should be_instance_of PageObject::Elements::TextField
|
30
40
|
end
|
31
41
|
|
42
|
+
it "should find a text field element using a default identifier" do
|
43
|
+
watir_browser.should_receive(:text_field).with(:index => 0).and_return(watir_browser)
|
44
|
+
watir_page_object.text_field_element
|
45
|
+
end
|
46
|
+
|
32
47
|
it "should find all text field elements" do
|
33
48
|
watir_browser.should_receive(:text_fields).with(:id => 'blah').and_return([watir_browser])
|
49
|
+
watir_browser.should_receive(:tag_name).and_return('input')
|
34
50
|
elements = watir_page_object.text_field_elements(:id => 'blah')
|
35
51
|
elements[0].should be_instance_of PageObject::Elements::TextField
|
36
52
|
end
|
53
|
+
|
54
|
+
it "should find all text fields with no identifier" do
|
55
|
+
watir_browser.should_receive(:text_fields).with({}).and_return([watir_browser])
|
56
|
+
watir_browser.should_receive(:tag_name).and_return('input')
|
57
|
+
watir_page_object.text_field_elements
|
58
|
+
end
|
37
59
|
|
38
60
|
it "should find a hidden field element" do
|
39
61
|
watir_browser.should_receive(:hidden).with(:id => 'blah').and_return(watir_browser)
|
@@ -41,11 +63,21 @@ describe PageObject::ElementLocators do
|
|
41
63
|
element.should be_instance_of PageObject::Elements::HiddenField
|
42
64
|
end
|
43
65
|
|
66
|
+
it "should find a hidden field using a default identifier" do
|
67
|
+
watir_browser.should_receive(:hidden).with(:index => 0).and_return(watir_browser)
|
68
|
+
watir_page_object.hidden_field_element
|
69
|
+
end
|
70
|
+
|
44
71
|
it "should find all hidden field elements" do
|
45
72
|
watir_browser.should_receive(:hiddens).with(:id => 'blah').and_return([watir_browser])
|
46
73
|
elements = watir_page_object.hidden_field_elements(:id => 'blah')
|
47
74
|
elements[0].should be_instance_of(PageObject::Elements::HiddenField)
|
48
75
|
end
|
76
|
+
|
77
|
+
it "should find all hidden field elements using no identifier" do
|
78
|
+
watir_browser.should_receive(:hiddens).with({}).and_return([watir_browser])
|
79
|
+
watir_page_object.hidden_field_elements
|
80
|
+
end
|
49
81
|
|
50
82
|
it "should find a text area element" do
|
51
83
|
watir_browser.should_receive(:textarea).with(:id => 'blah').and_return(watir_browser)
|
@@ -53,11 +85,21 @@ describe PageObject::ElementLocators do
|
|
53
85
|
element.should be_instance_of PageObject::Elements::TextArea
|
54
86
|
end
|
55
87
|
|
88
|
+
it "should find a text area using a default identifier" do
|
89
|
+
watir_browser.should_receive(:textarea).with(:index => 0).and_return(watir_browser)
|
90
|
+
watir_page_object.text_area_element
|
91
|
+
end
|
92
|
+
|
56
93
|
it "should find all text area elements" do
|
57
94
|
watir_browser.should_receive(:textareas).with(:id => 'blah').and_return([watir_browser])
|
58
95
|
elements = watir_page_object.text_area_elements(:id => 'blah')
|
59
96
|
elements[0].should be_instance_of PageObject::Elements::TextArea
|
60
97
|
end
|
98
|
+
|
99
|
+
it "should find all text area elements using no identifier" do
|
100
|
+
watir_browser.should_receive(:textareas).with({}).and_return([watir_browser])
|
101
|
+
watir_page_object.text_area_elements
|
102
|
+
end
|
61
103
|
|
62
104
|
it "should find a select list element" do
|
63
105
|
watir_browser.should_receive(:select_list).with(:id => 'blah').and_return(watir_browser)
|
@@ -65,11 +107,21 @@ describe PageObject::ElementLocators do
|
|
65
107
|
element.should be_instance_of PageObject::Elements::SelectList
|
66
108
|
end
|
67
109
|
|
110
|
+
it "should find a select list using a default identifier" do
|
111
|
+
watir_browser.should_receive(:select_list).with(:index => 0).and_return(watir_browser)
|
112
|
+
watir_page_object.select_list_element
|
113
|
+
end
|
114
|
+
|
68
115
|
it "should find all select list elements" do
|
69
116
|
watir_browser.should_receive(:select_lists).with(:id => 'blah').and_return([watir_browser])
|
70
117
|
elements = watir_page_object.select_list_elements(:id => 'blah')
|
71
118
|
elements[0].should be_instance_of PageObject::Elements::SelectList
|
72
119
|
end
|
120
|
+
|
121
|
+
it "should find all select list elements using no identifier" do
|
122
|
+
watir_browser.should_receive(:select_lists).with({}).and_return([watir_browser])
|
123
|
+
watir_page_object.select_list_elements
|
124
|
+
end
|
73
125
|
|
74
126
|
it "should find a link element" do
|
75
127
|
watir_browser.should_receive(:link).with(:id => 'blah').and_return(watir_browser)
|
@@ -77,11 +129,21 @@ describe PageObject::ElementLocators do
|
|
77
129
|
element.should be_instance_of PageObject::Elements::Link
|
78
130
|
end
|
79
131
|
|
132
|
+
it "should find a link element using a default identifier" do
|
133
|
+
watir_browser.should_receive(:link).with(:index => 0).and_return(watir_browser)
|
134
|
+
watir_page_object.link_element
|
135
|
+
end
|
136
|
+
|
80
137
|
it "should find all link elements" do
|
81
138
|
watir_browser.should_receive(:links).with(:id => 'blah').and_return([watir_browser])
|
82
139
|
elements = watir_page_object.link_elements(:id => 'blah')
|
83
140
|
elements[0].should be_instance_of PageObject::Elements::Link
|
84
141
|
end
|
142
|
+
|
143
|
+
it "should find all links using no identifier" do
|
144
|
+
watir_browser.should_receive(:links).with({}).and_return([watir_browser])
|
145
|
+
watir_page_object.link_elements
|
146
|
+
end
|
85
147
|
|
86
148
|
it "should find a check box" do
|
87
149
|
watir_browser.should_receive(:checkbox).with(:id => 'blah').and_return(watir_browser)
|
@@ -89,11 +151,21 @@ describe PageObject::ElementLocators do
|
|
89
151
|
element.should be_instance_of PageObject::Elements::CheckBox
|
90
152
|
end
|
91
153
|
|
154
|
+
it "should find a check box using a default identifier" do
|
155
|
+
watir_browser.should_receive(:checkbox).with(:index => 0).and_return(watir_browser)
|
156
|
+
watir_page_object.checkbox_element
|
157
|
+
end
|
158
|
+
|
92
159
|
it "should find all check box elements" do
|
93
160
|
watir_browser.should_receive(:checkboxes).with(:id => 'blah').and_return([watir_browser])
|
94
161
|
elements = watir_page_object.checkbox_elements(:id => 'blah')
|
95
162
|
elements[0].should be_instance_of PageObject::Elements::CheckBox
|
96
163
|
end
|
164
|
+
|
165
|
+
it "should find all check box elements using no identifier" do
|
166
|
+
watir_browser.should_receive(:checkboxes).with({}).and_return([watir_browser])
|
167
|
+
watir_page_object.checkbox_elements
|
168
|
+
end
|
97
169
|
|
98
170
|
it "should find a radio button" do
|
99
171
|
watir_browser.should_receive(:radio).with(:id => 'blah').and_return(watir_browser)
|
@@ -101,11 +173,21 @@ describe PageObject::ElementLocators do
|
|
101
173
|
element.should be_instance_of PageObject::Elements::RadioButton
|
102
174
|
end
|
103
175
|
|
176
|
+
it "should find a radio button using a default identifier" do
|
177
|
+
watir_browser.should_receive(:radio).with(:index => 0).and_return(watir_browser)
|
178
|
+
watir_page_object.radio_button_element
|
179
|
+
end
|
180
|
+
|
104
181
|
it "should find all radio buttons" do
|
105
182
|
watir_browser.should_receive(:radios).with(:id => 'blah').and_return([watir_browser])
|
106
183
|
elements = watir_page_object.radio_button_elements(:id => 'blah')
|
107
184
|
elements[0].should be_instance_of PageObject::Elements::RadioButton
|
108
185
|
end
|
186
|
+
|
187
|
+
it "should find all radio buttons using no identifier" do
|
188
|
+
watir_browser.should_receive(:radios).with({}).and_return([watir_browser])
|
189
|
+
watir_page_object.radio_button_elements
|
190
|
+
end
|
109
191
|
|
110
192
|
it "should find a div" do
|
111
193
|
watir_browser.should_receive(:div).with(:id => 'blah').and_return(watir_browser)
|
@@ -113,11 +195,21 @@ describe PageObject::ElementLocators do
|
|
113
195
|
element.should be_instance_of PageObject::Elements::Div
|
114
196
|
end
|
115
197
|
|
198
|
+
it "should find a div using a default identifier" do
|
199
|
+
watir_browser.should_receive(:div).with(:index => 0).and_return(watir_browser)
|
200
|
+
watir_page_object.div_element
|
201
|
+
end
|
202
|
+
|
116
203
|
it "should find all div elements" do
|
117
204
|
watir_browser.should_receive(:divs).with(:id => 'blah').and_return([watir_browser])
|
118
205
|
elements = watir_page_object.div_elements(:id => 'blah')
|
119
206
|
elements[0].should be_instance_of PageObject::Elements::Div
|
120
207
|
end
|
208
|
+
|
209
|
+
it "should find all div elements using no identifier" do
|
210
|
+
watir_browser.should_receive(:divs).with({}).and_return([watir_browser])
|
211
|
+
watir_page_object.div_elements
|
212
|
+
end
|
121
213
|
|
122
214
|
it "should find a span" do
|
123
215
|
watir_browser.should_receive(:span).with(:id => 'blah').and_return(watir_browser)
|
@@ -125,11 +217,21 @@ describe PageObject::ElementLocators do
|
|
125
217
|
element.should be_instance_of PageObject::Elements::Span
|
126
218
|
end
|
127
219
|
|
220
|
+
it "should find a span using a default identifier" do
|
221
|
+
watir_browser.should_receive(:span).with(:index => 0).and_return(watir_browser)
|
222
|
+
watir_page_object.span_element
|
223
|
+
end
|
224
|
+
|
128
225
|
it "should find all span elements" do
|
129
226
|
watir_browser.should_receive(:spans).with(:id => 'blah').and_return([watir_browser])
|
130
227
|
elements = watir_page_object.span_elements(:id => 'blah')
|
131
228
|
elements[0].should be_instance_of PageObject::Elements::Span
|
132
229
|
end
|
230
|
+
|
231
|
+
it "should find all span elements using no identifier" do
|
232
|
+
watir_browser.should_receive(:spans).with({}).and_return([watir_browser])
|
233
|
+
watir_page_object.span_elements
|
234
|
+
end
|
133
235
|
|
134
236
|
it "should find a table" do
|
135
237
|
watir_browser.should_receive(:table).with(:id => 'blah').and_return(watir_browser)
|
@@ -137,11 +239,21 @@ describe PageObject::ElementLocators do
|
|
137
239
|
element.should be_instance_of PageObject::Elements::Table
|
138
240
|
end
|
139
241
|
|
242
|
+
it "should find a table using a default identifier" do
|
243
|
+
watir_browser.should_receive(:table).with(:index => 0).and_return(watir_browser)
|
244
|
+
watir_page_object.table_element
|
245
|
+
end
|
246
|
+
|
140
247
|
it "should find all table elements" do
|
141
248
|
watir_browser.should_receive(:tables).with(:id => 'blah').and_return([watir_browser])
|
142
249
|
elements = watir_page_object.table_elements(:id => 'blah')
|
143
250
|
elements[0].should be_instance_of PageObject::Elements::Table
|
144
251
|
end
|
252
|
+
|
253
|
+
it "should find all table elements using no identifier" do
|
254
|
+
watir_browser.should_receive(:tables).with({}).and_return([watir_browser])
|
255
|
+
watir_page_object.table_elements
|
256
|
+
end
|
145
257
|
|
146
258
|
it "should find a table cell" do
|
147
259
|
watir_browser.should_receive(:td).with(:id => 'blah').and_return(watir_browser)
|
@@ -149,11 +261,21 @@ describe PageObject::ElementLocators do
|
|
149
261
|
element.should be_instance_of PageObject::Elements::TableCell
|
150
262
|
end
|
151
263
|
|
264
|
+
it "should find a table cell using a default identifier" do
|
265
|
+
watir_browser.should_receive(:td).with(:index => 0).and_return(watir_browser)
|
266
|
+
watir_page_object.cell_element
|
267
|
+
end
|
268
|
+
|
152
269
|
it "should find all table cells" do
|
153
270
|
watir_browser.should_receive(:tds).with(:id => 'blah').and_return([watir_browser])
|
154
271
|
elements = watir_page_object.cell_elements(:id => 'blah')
|
155
272
|
elements[0].should be_instance_of PageObject::Elements::TableCell
|
156
273
|
end
|
274
|
+
|
275
|
+
it "should find all table cells using no identifier" do
|
276
|
+
watir_browser.should_receive(:tds).with({}).and_return([watir_browser])
|
277
|
+
watir_page_object.cell_elements
|
278
|
+
end
|
157
279
|
|
158
280
|
it "should find an image" do
|
159
281
|
watir_browser.should_receive(:image).with(:id => 'blah').and_return(watir_browser)
|
@@ -161,11 +283,21 @@ describe PageObject::ElementLocators do
|
|
161
283
|
element.should be_instance_of PageObject::Elements::Image
|
162
284
|
end
|
163
285
|
|
286
|
+
it "should find an image using a default identifier" do
|
287
|
+
watir_browser.should_receive(:image).with(:index => 0).and_return(watir_browser)
|
288
|
+
watir_page_object.image_element
|
289
|
+
end
|
290
|
+
|
164
291
|
it "should find all images" do
|
165
292
|
watir_browser.should_receive(:images).with(:id => 'blah').and_return([watir_browser])
|
166
293
|
elements = watir_page_object.image_elements(:id => 'blah')
|
167
294
|
elements[0].should be_instance_of PageObject::Elements::Image
|
168
295
|
end
|
296
|
+
|
297
|
+
it "should find all images using no identifier" do
|
298
|
+
watir_browser.should_receive(:images).with({}).and_return([watir_browser])
|
299
|
+
watir_page_object.image_elements
|
300
|
+
end
|
169
301
|
|
170
302
|
it "should find a form" do
|
171
303
|
watir_browser.should_receive(:form).with(:id => 'blah').and_return(watir_browser)
|
@@ -173,11 +305,21 @@ describe PageObject::ElementLocators do
|
|
173
305
|
element.should be_instance_of PageObject::Elements::Form
|
174
306
|
end
|
175
307
|
|
308
|
+
it "should find a form using a default identifier" do
|
309
|
+
watir_browser.should_receive(:form).with(:index => 0).and_return(watir_browser)
|
310
|
+
watir_page_object.form_element
|
311
|
+
end
|
312
|
+
|
176
313
|
it "should find all forms" do
|
177
314
|
watir_browser.should_receive(:forms).with(:id => 'blah').and_return([watir_browser])
|
178
315
|
elements = watir_page_object.form_elements(:id => 'blah')
|
179
316
|
elements[0].should be_instance_of PageObject::Elements::Form
|
180
317
|
end
|
318
|
+
|
319
|
+
it "should find all forms using no identifier" do
|
320
|
+
watir_browser.should_receive(:forms).with({}).and_return([watir_browser])
|
321
|
+
watir_page_object.form_elements
|
322
|
+
end
|
181
323
|
|
182
324
|
it "should find a list item" do
|
183
325
|
watir_browser.should_receive(:li).with(:id => 'blah').and_return(watir_browser)
|
@@ -185,11 +327,21 @@ describe PageObject::ElementLocators do
|
|
185
327
|
element.should be_instance_of PageObject::Elements::ListItem
|
186
328
|
end
|
187
329
|
|
330
|
+
it "should find a list item using a default identifier" do
|
331
|
+
watir_browser.should_receive(:li).with(:index => 0).and_return(watir_browser)
|
332
|
+
watir_page_object.list_item_element
|
333
|
+
end
|
334
|
+
|
188
335
|
it "should find all list items" do
|
189
336
|
watir_browser.should_receive(:lis).with(:id => 'blah').and_return([watir_browser])
|
190
337
|
elements = watir_page_object.list_item_elements(:id => 'blah')
|
191
338
|
elements[0].should be_instance_of PageObject::Elements::ListItem
|
192
339
|
end
|
340
|
+
|
341
|
+
it "should find all list items using no parameter" do
|
342
|
+
watir_browser.should_receive(:lis).with({}).and_return([watir_browser])
|
343
|
+
watir_page_object.list_item_elements
|
344
|
+
end
|
193
345
|
|
194
346
|
it "should find an unordered list" do
|
195
347
|
watir_browser.should_receive(:ul).with(:id => 'blah').and_return(watir_browser)
|
@@ -197,11 +349,21 @@ describe PageObject::ElementLocators do
|
|
197
349
|
element.should be_instance_of PageObject::Elements::UnorderedList
|
198
350
|
end
|
199
351
|
|
352
|
+
it "should find an unordered list using a default identifier" do
|
353
|
+
watir_browser.should_receive(:ul).with(:index => 0).and_return(watir_browser)
|
354
|
+
watir_page_object.unordered_list_element
|
355
|
+
end
|
356
|
+
|
200
357
|
it "should find all unordered lists" do
|
201
358
|
watir_browser.should_receive(:uls).with(:id => 'blah').and_return([watir_browser])
|
202
359
|
elements = watir_page_object.unordered_list_elements(:id => 'blah')
|
203
360
|
elements[0].should be_instance_of PageObject::Elements::UnorderedList
|
204
361
|
end
|
362
|
+
|
363
|
+
it "should find all unordered lists using no parameters" do
|
364
|
+
watir_browser.should_receive(:uls).with({}).and_return([watir_browser])
|
365
|
+
watir_page_object.unordered_list_elements
|
366
|
+
end
|
205
367
|
|
206
368
|
it "should find an ordered list" do
|
207
369
|
watir_browser.should_receive(:ol).with(:id => 'blah').and_return(watir_browser)
|
@@ -209,11 +371,21 @@ describe PageObject::ElementLocators do
|
|
209
371
|
element.should be_instance_of PageObject::Elements::OrderedList
|
210
372
|
end
|
211
373
|
|
374
|
+
it "should find an orderd list using a default identifier" do
|
375
|
+
watir_browser.should_receive(:ol).with(:index => 0).and_return(watir_browser)
|
376
|
+
watir_page_object.ordered_list_element
|
377
|
+
end
|
378
|
+
|
212
379
|
it "should find all ordered lists" do
|
213
380
|
watir_browser.should_receive(:ols).with(:id => 'blah').and_return([watir_browser])
|
214
381
|
elements = watir_page_object.ordered_list_elements(:id => 'blah')
|
215
382
|
elements[0].should be_instance_of PageObject::Elements::OrderedList
|
216
383
|
end
|
384
|
+
|
385
|
+
it "should find all orderd lists using no parameters" do
|
386
|
+
watir_browser.should_receive(:ols).with({}).and_return([watir_browser])
|
387
|
+
watir_page_object.ordered_list_elements
|
388
|
+
end
|
217
389
|
|
218
390
|
it "should find a h1 element" do
|
219
391
|
watir_browser.should_receive(:h1).with(:id => 'blah').and_return(watir_browser)
|
@@ -221,101 +393,208 @@ describe PageObject::ElementLocators do
|
|
221
393
|
element.should be_instance_of PageObject::Elements::Heading
|
222
394
|
end
|
223
395
|
|
224
|
-
it "
|
396
|
+
it "should find a h1 element using a default identifier" do
|
397
|
+
watir_browser.should_receive(:h1).with(:index => 0).and_return(watir_browser)
|
398
|
+
watir_page_object.h1_element
|
399
|
+
end
|
400
|
+
|
401
|
+
it "should find all h1 elements" do
|
225
402
|
watir_browser.should_receive(:h1s).with(:id => 'blah').and_return([watir_browser])
|
226
403
|
elements = watir_page_object.h1_elements(:id => 'blah')
|
227
404
|
elements[0].should be_instance_of PageObject::Elements::Heading
|
228
405
|
end
|
229
406
|
|
407
|
+
it "should find all h1 elements using no parameters" do
|
408
|
+
watir_browser.should_receive(:h1s).with({}).and_return([watir_browser])
|
409
|
+
watir_page_object.h1_elements
|
410
|
+
end
|
411
|
+
|
230
412
|
it "should find a h2 element" do
|
231
413
|
watir_browser.should_receive(:h2).with(:id => 'blah').and_return(watir_browser)
|
232
414
|
element = watir_page_object.h2_element(:id => 'blah')
|
233
415
|
element.should be_instance_of PageObject::Elements::Heading
|
234
416
|
end
|
235
417
|
|
418
|
+
it "should find a h2 element using default identifier" do
|
419
|
+
watir_browser.should_receive(:h2).with(:index => 0).and_return(watir_browser)
|
420
|
+
watir_page_object.h2_element
|
421
|
+
end
|
422
|
+
|
236
423
|
it "should find all h2 elements" do
|
237
424
|
watir_browser.should_receive(:h2s).with(:id => 'blah').and_return([watir_browser])
|
238
425
|
elements = watir_page_object.h2_elements(:id => 'blah')
|
239
426
|
elements[0].should be_instance_of PageObject::Elements::Heading
|
240
427
|
end
|
241
428
|
|
429
|
+
it "should find all h2 elements using no identifier" do
|
430
|
+
watir_browser.should_receive(:h2s).with({}).and_return([watir_browser])
|
431
|
+
watir_page_object.h2_elements
|
432
|
+
end
|
433
|
+
|
242
434
|
it "should find a h3 element" do
|
243
435
|
watir_browser.should_receive(:h3).with(:id => 'blah').and_return(watir_browser)
|
244
436
|
element = watir_page_object.h3_element(:id => 'blah')
|
245
437
|
element.should be_instance_of PageObject::Elements::Heading
|
246
438
|
end
|
247
439
|
|
440
|
+
it "should find a h3 element using a default identifier" do
|
441
|
+
watir_browser.should_receive(:h3).with(:index => 0).and_return(watir_browser)
|
442
|
+
watir_page_object.h3_element
|
443
|
+
end
|
444
|
+
|
248
445
|
it "should find all h3 elements" do
|
249
446
|
watir_browser.should_receive(:h3s).with(:id => 'blah').and_return([watir_browser])
|
250
447
|
elements = watir_page_object.h3_elements(:id => 'blah')
|
251
448
|
elements[0].should be_instance_of PageObject::Elements::Heading
|
252
449
|
end
|
253
450
|
|
451
|
+
it "should find all h3 elements using no identifiers" do
|
452
|
+
watir_browser.should_receive(:h3s).with({}).and_return([watir_browser])
|
453
|
+
watir_page_object.h3_elements
|
454
|
+
end
|
455
|
+
|
254
456
|
it "should find a h4 element" do
|
255
457
|
watir_browser.should_receive(:h4).with(:id => 'blah').and_return(watir_browser)
|
256
458
|
element = watir_page_object.h4_element(:id => 'blah')
|
257
459
|
element.should be_instance_of PageObject::Elements::Heading
|
258
460
|
end
|
259
461
|
|
462
|
+
it "should find a h4 element using a default identifier" do
|
463
|
+
watir_browser.should_receive(:h4).with(:index => 0).and_return(watir_browser)
|
464
|
+
watir_page_object.h4_element
|
465
|
+
end
|
466
|
+
|
260
467
|
it "should find all h4 elements" do
|
261
468
|
watir_browser.should_receive(:h4s).with(:id => 'blah').and_return([watir_browser])
|
262
469
|
elements = watir_page_object.h4_elements(:id => 'blah')
|
263
470
|
elements[0].should be_instance_of PageObject::Elements::Heading
|
264
471
|
end
|
265
472
|
|
473
|
+
it "should find all h4 elements using no identifier" do
|
474
|
+
watir_browser.should_receive(:h4s).with({}).and_return([watir_browser])
|
475
|
+
watir_page_object.h4_elements
|
476
|
+
end
|
477
|
+
|
266
478
|
it "should find a h5 element" do
|
267
479
|
watir_browser.should_receive(:h5).with(:id => 'blah').and_return(watir_browser)
|
268
480
|
element = watir_page_object.h5_element(:id => 'blah')
|
269
481
|
element.should be_instance_of PageObject::Elements::Heading
|
270
482
|
end
|
271
483
|
|
484
|
+
it "should find a h5 element using a default identifier" do
|
485
|
+
watir_browser.should_receive(:h5).with(:index => 0).and_return(watir_browser)
|
486
|
+
watir_page_object.h5_element
|
487
|
+
end
|
488
|
+
|
272
489
|
it "should find all h5 elements" do
|
273
490
|
watir_browser.should_receive(:h5s).with(:id => 'blah').and_return([watir_browser])
|
274
491
|
elements = watir_page_object.h5_elements(:id => 'blah')
|
275
492
|
elements[0].should be_instance_of PageObject::Elements::Heading
|
276
493
|
end
|
277
494
|
|
495
|
+
it "should find all h5 elements using no identifier" do
|
496
|
+
watir_browser.should_receive(:h5s).with({}).and_return([watir_browser])
|
497
|
+
watir_page_object.h5_elements
|
498
|
+
end
|
499
|
+
|
278
500
|
it "should find a h6 element" do
|
279
501
|
watir_browser.should_receive(:h6).with(:id => 'blah').and_return(watir_browser)
|
280
502
|
element = watir_page_object.h6_element(:id => 'blah')
|
281
503
|
element.should be_instance_of PageObject::Elements::Heading
|
282
504
|
end
|
283
505
|
|
506
|
+
it "should find a h6 element using a default identifier" do
|
507
|
+
watir_browser.should_receive(:h6).with(:index => 0).and_return(watir_browser)
|
508
|
+
watir_page_object.h6_element
|
509
|
+
end
|
510
|
+
|
284
511
|
it "should find all h6 elements" do
|
285
512
|
watir_browser.should_receive(:h6s).with(:id => 'blah').and_return([watir_browser])
|
286
513
|
elements = watir_page_object.h6_elements(:id => 'blah')
|
287
514
|
elements[0].should be_instance_of PageObject::Elements::Heading
|
288
515
|
end
|
289
516
|
|
517
|
+
it "should find all h6 elements using no identifier" do
|
518
|
+
watir_browser.should_receive(:h6s).with({}).and_return([watir_browser])
|
519
|
+
watir_page_object.h6_elements
|
520
|
+
end
|
521
|
+
|
290
522
|
it "should find a paragraph element" do
|
291
523
|
watir_browser.should_receive(:p).with(:id => 'blah').and_return(watir_browser)
|
292
524
|
element = watir_page_object.paragraph_element(:id => 'blah')
|
293
525
|
element.should be_instance_of PageObject::Elements::Paragraph
|
294
526
|
end
|
295
527
|
|
528
|
+
it "should find a paragraph element using a default identifier" do
|
529
|
+
watir_browser.should_receive(:p).with(:index => 0).and_return(watir_browser)
|
530
|
+
watir_page_object.paragraph_element
|
531
|
+
end
|
532
|
+
|
296
533
|
it "should find all paragraph elements" do
|
297
534
|
watir_browser.should_receive(:ps).with(:id => 'blah').and_return([watir_browser])
|
298
535
|
elements = watir_page_object.paragraph_elements(:id => 'blah')
|
299
536
|
elements[0].should be_instance_of PageObject::Elements::Paragraph
|
300
537
|
end
|
301
538
|
|
539
|
+
it "should find all paragraph elements using no identifier" do
|
540
|
+
watir_browser.should_receive(:ps).with({}).and_return([watir_browser])
|
541
|
+
watir_page_object.paragraph_elements
|
542
|
+
end
|
543
|
+
|
302
544
|
it "should find a label" do
|
303
545
|
watir_browser.should_receive(:label).with(:id => 'blah').and_return(watir_browser)
|
304
546
|
element = watir_page_object.label_element(:id => 'blah')
|
305
547
|
element.should be_instance_of PageObject::Elements::Label
|
306
548
|
end
|
307
549
|
|
550
|
+
it "should find a label element using default parameters" do
|
551
|
+
watir_browser.should_receive(:label).with(:index => 0).and_return(watir_browser)
|
552
|
+
watir_page_object.label_element
|
553
|
+
end
|
554
|
+
|
308
555
|
it "should find all label elements" do
|
309
556
|
watir_browser.should_receive(:labels).with(:id => 'blah').and_return([watir_browser])
|
310
557
|
elements = watir_page_object.label_elements(:id => 'blah')
|
311
558
|
elements[0].should be_instance_of PageObject::Elements::Label
|
312
|
-
end
|
559
|
+
end
|
560
|
+
|
561
|
+
it "should find all label elements using no parameters" do
|
562
|
+
watir_browser.should_receive(:labels).with({}).and_return([watir_browser])
|
563
|
+
watir_page_object.label_elements
|
564
|
+
end
|
313
565
|
|
314
566
|
it "should find a file field element" do
|
315
567
|
watir_browser.should_receive(:file_field).with(:id => 'blah').and_return(watir_browser)
|
316
568
|
element = watir_page_object.file_field_element(:id => 'blah')
|
317
569
|
element.should be_instance_of PageObject::Elements::FileField
|
318
570
|
end
|
571
|
+
|
572
|
+
it "should find a file field element using a default identifier" do
|
573
|
+
watir_browser.should_receive(:file_field).with(:index => 0).and_return(watir_browser)
|
574
|
+
watir_page_object.file_field_element
|
575
|
+
end
|
576
|
+
|
577
|
+
it "should find all file field elements" do
|
578
|
+
watir_browser.should_receive(:file_fields).with(:id => 'blah').and_return([watir_browser])
|
579
|
+
element = watir_page_object.file_field_elements(:id => 'blah')
|
580
|
+
element[0].should be_instance_of PageObject::Elements::FileField
|
581
|
+
end
|
582
|
+
|
583
|
+
it "should find all file fields using no identifier" do
|
584
|
+
watir_browser.should_receive(:file_fields).with({}).and_return([watir_browser])
|
585
|
+
watir_page_object.file_field_elements
|
586
|
+
end
|
587
|
+
|
588
|
+
it "should find an element" do
|
589
|
+
watir_browser.should_receive(:audio).with(:id => 'blah').and_return(watir_browser)
|
590
|
+
element = watir_page_object.element(:audio, :id => 'blah')
|
591
|
+
element.should be_instance_of PageObject::Elements::Element
|
592
|
+
end
|
593
|
+
|
594
|
+
it "should find an element using a default identifier" do
|
595
|
+
watir_browser.should_receive(:audio).with(:index => 0).and_return(watir_browser)
|
596
|
+
watir_page_object.element(:audio)
|
597
|
+
end
|
319
598
|
end
|
320
599
|
|
321
600
|
context "when using Selenium" do
|