page-object 0.6.4 → 0.6.5
Sign up to get free protection for your applications and to get access to all the features.
- data/ChangeLog +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
|