page-object 0.2 → 0.2.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.
- data/.gitignore +1 -0
- data/.rvmrc +1 -1
- data/ChangeLog +12 -6
- data/README.md +1 -1
- data/Rakefile +3 -19
- data/features/async.feature +8 -8
- data/features/button.feature +7 -7
- data/features/check_box.feature +8 -8
- data/features/div.feature +7 -6
- data/features/element_attributes.feature +14 -14
- data/features/form.feature +5 -5
- data/features/frames.feature +12 -0
- data/features/hidden_field.feature +5 -5
- data/features/html/frame_1.html +18 -0
- data/features/html/frame_2.html +16 -0
- data/features/html/frames.html +11 -0
- data/features/html/iframes.html +12 -0
- data/features/html/static_elements.html +50 -42
- data/features/html/success.html +5 -5
- data/features/image.feature +11 -11
- data/features/link.feature +1 -1
- data/features/list_item.feature +5 -5
- data/features/ordered_list.feature +6 -6
- data/features/page_level_actions.feature +16 -5
- data/features/radio_button.feature +12 -12
- data/features/select_list.feature +12 -12
- data/features/span.feature +5 -5
- data/features/step_definitions/accessor_steps.rb +2 -2
- data/features/step_definitions/async_steps.rb +1 -1
- data/features/step_definitions/element_steps.rb +1 -1
- data/features/step_definitions/frames_steps.rb +21 -0
- data/features/step_definitions/page_level_actions_steps.rb +24 -2
- data/features/step_definitions/page_traversal_steps.rb +0 -1
- data/features/support/env.rb +20 -6
- data/features/support/page.rb +14 -11
- data/features/support/url_helper.rb +4 -0
- data/features/table.feature +9 -9
- data/features/table_cell.feature +6 -6
- data/features/text_area.feature +6 -6
- data/features/text_field.feature +7 -7
- data/features/unordered_list.feature +6 -6
- data/lib/page-object.rb +40 -16
- data/lib/page-object/accessors.rb +15 -15
- data/lib/page-object/elements.rb +0 -1
- data/lib/page-object/elements/button.rb +24 -24
- data/lib/page-object/elements/div.rb +8 -3
- data/lib/page-object/elements/element.rb +27 -28
- data/lib/page-object/elements/form.rb +7 -7
- data/lib/page-object/elements/hidden_field.rb +5 -5
- data/lib/page-object/elements/image.rb +8 -8
- data/lib/page-object/elements/link.rb +9 -9
- data/lib/page-object/elements/list_item.rb +1 -1
- data/lib/page-object/elements/option.rb +1 -1
- data/lib/page-object/elements/ordered_list.rb +13 -13
- data/lib/page-object/elements/select_list.rb +6 -6
- data/lib/page-object/elements/span.rb +2 -2
- data/lib/page-object/elements/table.rb +11 -11
- data/lib/page-object/elements/table_row.rb +9 -9
- data/lib/page-object/elements/text_area.rb +4 -4
- data/lib/page-object/elements/text_field.rb +4 -4
- data/lib/page-object/elements/unordered_list.rb +13 -13
- data/lib/page-object/loads_platform.rb +24 -0
- data/lib/page-object/page_factory.rb +3 -3
- data/lib/page-object/platforms.rb +18 -0
- data/lib/page-object/platforms/selenium.rb +16 -0
- data/lib/page-object/platforms/selenium/button.rb +15 -0
- data/lib/page-object/platforms/selenium/element.rb +168 -0
- data/lib/page-object/platforms/selenium/form.rb +16 -0
- data/lib/page-object/platforms/selenium/image.rb +28 -0
- data/lib/page-object/platforms/selenium/link.rb +16 -0
- data/lib/page-object/platforms/selenium/ordered_list.rb +33 -0
- data/lib/page-object/platforms/selenium/page_object.rb +524 -0
- data/lib/page-object/platforms/selenium/select_list.rb +32 -0
- data/lib/page-object/platforms/selenium/table.rb +40 -0
- data/lib/page-object/platforms/selenium/table_row.rb +32 -0
- data/lib/page-object/platforms/selenium/unordered_list.rb +33 -0
- data/lib/page-object/platforms/watir.rb +16 -0
- data/lib/page-object/platforms/watir/element.rb +154 -0
- data/lib/page-object/platforms/watir/form.rb +16 -0
- data/lib/page-object/platforms/watir/image.rb +22 -0
- data/lib/page-object/platforms/watir/ordered_list.rb +32 -0
- data/lib/page-object/{watir_page_object.rb → platforms/watir/page_object.rb} +62 -35
- data/lib/page-object/platforms/watir/select_list.rb +33 -0
- data/lib/page-object/platforms/watir/table.rb +27 -0
- data/lib/page-object/platforms/watir/table_row.rb +24 -0
- data/lib/page-object/platforms/watir/unordered_list.rb +33 -0
- data/lib/page-object/version.rb +1 -1
- data/page-object.gemspec +13 -13
- data/spec/page-object/accessors_spec.rb +142 -108
- data/spec/page-object/elements/button_spec.rb +33 -33
- data/spec/page-object/elements/check_box_spec.rb +1 -1
- data/spec/page-object/elements/div_spec.rb +3 -3
- data/spec/page-object/elements/element_spec.rb +51 -41
- data/spec/page-object/elements/form_spec.rb +3 -3
- data/spec/page-object/elements/hidden_field_spec.rb +3 -3
- data/spec/page-object/elements/image_spec.rb +7 -7
- data/spec/page-object/elements/link_spec.rb +8 -8
- data/spec/page-object/elements/list_item_spec.rb +1 -1
- data/spec/page-object/elements/ordered_list_spec.rb +9 -9
- data/spec/page-object/elements/radio_button_spec.rb +1 -1
- data/spec/page-object/elements/select_list_spec.rb +2 -2
- data/spec/page-object/elements/span_spec.rb +1 -1
- data/spec/page-object/elements/table_row_spec.rb +6 -6
- data/spec/page-object/elements/table_spec.rb +9 -9
- data/spec/page-object/elements/text_area_spec.rb +3 -3
- data/spec/page-object/elements/text_field_spec.rb +3 -3
- data/spec/page-object/elements/unordered_list_spec.rb +10 -10
- data/spec/page-object/loads_platform_spec.rb +38 -0
- data/spec/page-object/page-object_spec.rb +70 -10
- data/spec/page-object/page_factory_spec.rb +3 -3
- data/spec/page-object/{selenium_page_object_spec.rb → platforms/selenium/selenium_page_object_spec.rb} +10 -3
- data/spec/page-object/platforms/selenium_spec.rb +26 -0
- data/spec/page-object/platforms/watir_spec.rb +27 -0
- data/spec/spec_helper.rb +18 -5
- metadata +48 -26
- data/lib/page-object/platforms/selenium_button.rb +0 -13
- data/lib/page-object/platforms/selenium_element.rb +0 -142
- data/lib/page-object/platforms/selenium_form.rb +0 -14
- data/lib/page-object/platforms/selenium_image.rb +0 -26
- data/lib/page-object/platforms/selenium_link.rb +0 -13
- data/lib/page-object/platforms/selenium_ordered_list.rb +0 -31
- data/lib/page-object/platforms/selenium_select_list.rb +0 -29
- data/lib/page-object/platforms/selenium_table.rb +0 -38
- data/lib/page-object/platforms/selenium_table_row.rb +0 -29
- data/lib/page-object/platforms/selenium_unordered_list.rb +0 -31
- data/lib/page-object/platforms/watir_element.rb +0 -136
- data/lib/page-object/platforms/watir_form.rb +0 -14
- data/lib/page-object/platforms/watir_image.rb +0 -20
- data/lib/page-object/platforms/watir_ordered_list.rb +0 -30
- data/lib/page-object/platforms/watir_select_list.rb +0 -30
- data/lib/page-object/platforms/watir_table.rb +0 -24
- data/lib/page-object/platforms/watir_table_row.rb +0 -22
- data/lib/page-object/platforms/watir_unordered_list.rb +0 -31
- data/lib/page-object/selenium_page_object.rb +0 -486
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
|
|
2
1
|
module PageObject
|
|
3
2
|
#
|
|
4
3
|
# Contains the class level methods that are inserted into your page objects
|
|
@@ -9,7 +8,7 @@ module PageObject
|
|
|
9
8
|
# @see PageObject::SeleniumPageObject for the selenium implementation of the platform delegate
|
|
10
9
|
#
|
|
11
10
|
module Accessors
|
|
12
|
-
|
|
11
|
+
|
|
13
12
|
#
|
|
14
13
|
# Specify the url for the page. A call to this method will generate a
|
|
15
14
|
# 'goto' method to take you to the page.
|
|
@@ -21,7 +20,7 @@ module PageObject
|
|
|
21
20
|
platform.navigate_to url
|
|
22
21
|
end
|
|
23
22
|
end
|
|
24
|
-
|
|
23
|
+
|
|
25
24
|
#
|
|
26
25
|
# adds three methods to the page object - one to set text in a text field,
|
|
27
26
|
# another to retrieve text from a text field and another to return the text
|
|
@@ -56,7 +55,7 @@ module PageObject
|
|
|
56
55
|
block ? block.call(browser) : platform.text_field_for(identifier.clone)
|
|
57
56
|
end
|
|
58
57
|
end
|
|
59
|
-
|
|
58
|
+
|
|
60
59
|
#
|
|
61
60
|
# adds two methods to the page object - one to get the text from a hidden field
|
|
62
61
|
# and another to retrieve the hidden field element.
|
|
@@ -86,7 +85,7 @@ module PageObject
|
|
|
86
85
|
block ? block.call(browser) : platform.hidden_field_for(identifier.clone)
|
|
87
86
|
end
|
|
88
87
|
end
|
|
89
|
-
|
|
88
|
+
|
|
90
89
|
#
|
|
91
90
|
# adds three methods to the page object - one to set text in a text area,
|
|
92
91
|
# another to retrieve text from a text area and another to return the text
|
|
@@ -184,7 +183,7 @@ module PageObject
|
|
|
184
183
|
block ? block.call(browser) : platform.link_for(identifier.clone)
|
|
185
184
|
end
|
|
186
185
|
end
|
|
187
|
-
|
|
186
|
+
|
|
188
187
|
#
|
|
189
188
|
# adds four methods - one to check, another to uncheck, another
|
|
190
189
|
# to return the state of a checkbox, and a final method to return
|
|
@@ -218,7 +217,7 @@ module PageObject
|
|
|
218
217
|
block ? block.call(browser) : platform.checkbox_for(identifier.clone)
|
|
219
218
|
end
|
|
220
219
|
end
|
|
221
|
-
|
|
220
|
+
|
|
222
221
|
#
|
|
223
222
|
# adds four methods - one to select, another to clear,
|
|
224
223
|
# another to return if a radio button is selected, and
|
|
@@ -246,7 +245,7 @@ module PageObject
|
|
|
246
245
|
define_method("clear_#{name}") do
|
|
247
246
|
platform.clear_radio(identifier.clone)
|
|
248
247
|
end
|
|
249
|
-
define_method("#{name}_selected?")
|
|
248
|
+
define_method("#{name}_selected?") do
|
|
250
249
|
platform.radio_selected?(identifier.clone)
|
|
251
250
|
end
|
|
252
251
|
define_method("#{name}_radio_button") do
|
|
@@ -281,7 +280,7 @@ module PageObject
|
|
|
281
280
|
block ? block.call(browser) : platform.button_for(identifier.clone)
|
|
282
281
|
end
|
|
283
282
|
end
|
|
284
|
-
|
|
283
|
+
|
|
285
284
|
#
|
|
286
285
|
# adds two methods - one to retrieve the text from a div
|
|
287
286
|
# and another to return the div element
|
|
@@ -297,6 +296,7 @@ module PageObject
|
|
|
297
296
|
# * :id => Watir and Selenium
|
|
298
297
|
# * :index => Watir and Selenium
|
|
299
298
|
# * :name => Watir and Selenium
|
|
299
|
+
# * :text => Watir and Selenium
|
|
300
300
|
# * :xpath => Watir and Selenium
|
|
301
301
|
# @param optional block to be invoked when element method is called
|
|
302
302
|
#
|
|
@@ -358,7 +358,7 @@ module PageObject
|
|
|
358
358
|
block ? block.call(browser) : platform.table_for(identifier.clone)
|
|
359
359
|
end
|
|
360
360
|
end
|
|
361
|
-
|
|
361
|
+
|
|
362
362
|
#
|
|
363
363
|
# adds two methods one to retrieve the text from a table cell
|
|
364
364
|
# and another to return the table cell element
|
|
@@ -385,7 +385,7 @@ module PageObject
|
|
|
385
385
|
block ? block.call(browser) : platform.cell_for(identifier.clone)
|
|
386
386
|
end
|
|
387
387
|
end
|
|
388
|
-
|
|
388
|
+
|
|
389
389
|
#
|
|
390
390
|
# adds a method to retrieve the image element
|
|
391
391
|
#
|
|
@@ -408,7 +408,7 @@ module PageObject
|
|
|
408
408
|
block ? block.call(browser) : platform.image_for(identifier.clone)
|
|
409
409
|
end
|
|
410
410
|
end
|
|
411
|
-
|
|
411
|
+
|
|
412
412
|
#
|
|
413
413
|
# adds a method to retrieve the form element
|
|
414
414
|
#
|
|
@@ -430,7 +430,7 @@ module PageObject
|
|
|
430
430
|
block ? block.call(browser) : platform.form_for(identifier.clone)
|
|
431
431
|
end
|
|
432
432
|
end
|
|
433
|
-
|
|
433
|
+
|
|
434
434
|
#
|
|
435
435
|
# adds two methods - one to retrieve the text from a list item
|
|
436
436
|
# and another to return the list item element
|
|
@@ -457,7 +457,7 @@ module PageObject
|
|
|
457
457
|
block ? block.call(browser) : platform.list_item_for(identifier.clone)
|
|
458
458
|
end
|
|
459
459
|
end
|
|
460
|
-
|
|
460
|
+
|
|
461
461
|
#
|
|
462
462
|
# adds a method to retrieve the unordered list element
|
|
463
463
|
#
|
|
@@ -480,7 +480,7 @@ module PageObject
|
|
|
480
480
|
block ? block.call(browser) : platform.unordered_list_for(identifier.clone)
|
|
481
481
|
end
|
|
482
482
|
end
|
|
483
|
-
|
|
483
|
+
|
|
484
484
|
#
|
|
485
485
|
# adds a method to retrieve the ordered list element
|
|
486
486
|
#
|
data/lib/page-object/elements.rb
CHANGED
|
@@ -1,25 +1,25 @@
|
|
|
1
|
-
module PageObject
|
|
2
|
-
module Elements
|
|
3
|
-
class Button < Element
|
|
4
|
-
|
|
5
|
-
def initialize(element, platform)
|
|
6
|
-
@element = element
|
|
7
|
-
include_platform_for platform
|
|
8
|
-
end
|
|
9
|
-
|
|
10
|
-
protected
|
|
11
|
-
|
|
12
|
-
def self.watir_finders
|
|
13
|
-
super + [:text]
|
|
14
|
-
end
|
|
15
|
-
|
|
16
|
-
def include_platform_for platform
|
|
17
|
-
super
|
|
18
|
-
if platform[:platform] == :selenium
|
|
19
|
-
require 'page-object/platforms/
|
|
20
|
-
self.class.send :include, PageObject::Platforms::
|
|
21
|
-
end
|
|
22
|
-
end
|
|
23
|
-
end
|
|
24
|
-
end
|
|
1
|
+
module PageObject
|
|
2
|
+
module Elements
|
|
3
|
+
class Button < Element
|
|
4
|
+
|
|
5
|
+
def initialize(element, platform)
|
|
6
|
+
@element = element
|
|
7
|
+
include_platform_for platform
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
protected
|
|
11
|
+
|
|
12
|
+
def self.watir_finders
|
|
13
|
+
super + [:text]
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
def include_platform_for platform
|
|
17
|
+
super
|
|
18
|
+
if platform[:platform] == :selenium
|
|
19
|
+
require 'page-object/platforms/selenium/button'
|
|
20
|
+
self.class.send :include, PageObject::Platforms::Selenium::Button
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
25
|
end
|
|
@@ -1,12 +1,17 @@
|
|
|
1
1
|
module PageObject
|
|
2
2
|
module Elements
|
|
3
3
|
class Div < Element
|
|
4
|
-
|
|
4
|
+
|
|
5
5
|
protected
|
|
6
|
-
|
|
6
|
+
|
|
7
7
|
def self.watir_finders
|
|
8
|
-
[:class, :id, :index, :xpath]
|
|
8
|
+
[:class, :id, :text, :index, :xpath]
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
def self.selenium_finders
|
|
12
|
+
[:class, :id, :name, :text, :xpath, :index]
|
|
9
13
|
end
|
|
14
|
+
|
|
10
15
|
end
|
|
11
16
|
end
|
|
12
17
|
end
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
|
|
2
1
|
module PageObject
|
|
3
2
|
module Elements
|
|
4
3
|
#
|
|
@@ -9,12 +8,12 @@ module PageObject
|
|
|
9
8
|
#
|
|
10
9
|
class Element
|
|
11
10
|
attr_reader :element
|
|
12
|
-
|
|
11
|
+
|
|
13
12
|
def initialize(element, platform)
|
|
14
13
|
@element = element
|
|
15
14
|
include_platform_for platform
|
|
16
15
|
end
|
|
17
|
-
|
|
16
|
+
|
|
18
17
|
# @private
|
|
19
18
|
def self.watir_identifier_for identifier
|
|
20
19
|
if should_build_watir_xpath(identifier)
|
|
@@ -30,7 +29,7 @@ module PageObject
|
|
|
30
29
|
end
|
|
31
30
|
all_identities
|
|
32
31
|
end
|
|
33
|
-
|
|
32
|
+
|
|
34
33
|
# @private
|
|
35
34
|
def self.selenium_identifier_for identifier
|
|
36
35
|
if identifier.length == 1
|
|
@@ -44,7 +43,7 @@ module PageObject
|
|
|
44
43
|
end
|
|
45
44
|
|
|
46
45
|
protected
|
|
47
|
-
|
|
46
|
+
|
|
48
47
|
def self.should_build_watir_xpath identifier
|
|
49
48
|
['table', 'span', 'div', 'td', 'li', 'ul', 'ol'].include? identifier[:tag_name] and identifier[:name]
|
|
50
49
|
end
|
|
@@ -58,7 +57,7 @@ module PageObject
|
|
|
58
57
|
xpath << "[#{idx+1}]" if idx
|
|
59
58
|
xpath
|
|
60
59
|
end
|
|
61
|
-
|
|
60
|
+
|
|
62
61
|
def self.attribute_expression(identifier)
|
|
63
62
|
identifier.map do |key, value|
|
|
64
63
|
if value.kind_of?(Array)
|
|
@@ -68,7 +67,7 @@ module PageObject
|
|
|
68
67
|
end
|
|
69
68
|
end.join(" and ")
|
|
70
69
|
end
|
|
71
|
-
|
|
70
|
+
|
|
72
71
|
def self.equal_pair(key, value)
|
|
73
72
|
if key == :label
|
|
74
73
|
"@id=//label[normalize-space()=#{xpath_string(value)}]/@for"
|
|
@@ -76,15 +75,15 @@ module PageObject
|
|
|
76
75
|
"#{lhs_for(key)}=#{xpath_string(value)}"
|
|
77
76
|
end
|
|
78
77
|
end
|
|
79
|
-
|
|
78
|
+
|
|
80
79
|
def self.lhs_for(key)
|
|
81
80
|
case key
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
81
|
+
when :text, 'text'
|
|
82
|
+
'normalize-space()'
|
|
83
|
+
when :href
|
|
84
|
+
'normalize-space(@href)'
|
|
85
|
+
else
|
|
86
|
+
"@#{key.to_s.gsub("_", "-")}"
|
|
88
87
|
end
|
|
89
88
|
end
|
|
90
89
|
|
|
@@ -104,32 +103,32 @@ module PageObject
|
|
|
104
103
|
return find_by_mapping[how] => what if find_by_mapping[how]
|
|
105
104
|
return nil => what
|
|
106
105
|
end
|
|
107
|
-
|
|
106
|
+
|
|
108
107
|
def self.watir_finders
|
|
109
108
|
[:class, :id, :index, :name, :xpath]
|
|
110
109
|
end
|
|
111
|
-
|
|
112
|
-
def self.watir_mapping
|
|
113
|
-
{}
|
|
110
|
+
|
|
111
|
+
def self.watir_mapping
|
|
112
|
+
{}
|
|
114
113
|
end
|
|
115
|
-
|
|
114
|
+
|
|
116
115
|
def self.selenium_finders
|
|
117
116
|
[:class, :id, :name, :xpath, :index]
|
|
118
117
|
end
|
|
119
|
-
|
|
120
|
-
def self.selenium_mapping
|
|
121
|
-
{}
|
|
118
|
+
|
|
119
|
+
def self.selenium_mapping
|
|
120
|
+
{}
|
|
122
121
|
end
|
|
123
|
-
|
|
122
|
+
|
|
124
123
|
def include_platform_for platform
|
|
125
124
|
if platform[:platform] == :watir
|
|
126
|
-
require 'page-object/platforms/
|
|
127
|
-
self.class.send :include, PageObject::Platforms::
|
|
125
|
+
require 'page-object/platforms/watir/element'
|
|
126
|
+
self.class.send :include, PageObject::Platforms::Watir::Element
|
|
128
127
|
elsif platform[:platform] == :selenium
|
|
129
|
-
require 'page-object/platforms/
|
|
130
|
-
self.class.send :include, PageObject::Platforms::
|
|
128
|
+
require 'page-object/platforms/selenium/element'
|
|
129
|
+
self.class.send :include, PageObject::Platforms::Selenium::Element
|
|
131
130
|
else
|
|
132
|
-
raise ArgumentError, "expect platform to be :watir or :selenium"
|
|
131
|
+
raise ArgumentError, "expect platform to be :watir or :selenium"
|
|
133
132
|
end
|
|
134
133
|
end
|
|
135
134
|
end
|
|
@@ -5,19 +5,19 @@ module PageObject
|
|
|
5
5
|
@element = element
|
|
6
6
|
include_platform_for platform
|
|
7
7
|
end
|
|
8
|
-
|
|
8
|
+
|
|
9
9
|
protected
|
|
10
|
-
|
|
10
|
+
|
|
11
11
|
def include_platform_for platform
|
|
12
12
|
super
|
|
13
13
|
if platform[:platform] == :watir
|
|
14
|
-
require 'page-object/platforms/
|
|
15
|
-
self.class.send :include, PageObject::Platforms::
|
|
14
|
+
require 'page-object/platforms/watir/form'
|
|
15
|
+
self.class.send :include, PageObject::Platforms::Watir::Form
|
|
16
16
|
elsif platform[:platform] == :selenium
|
|
17
|
-
require 'page-object/platforms/
|
|
18
|
-
self.class.send :include, PageObject::Platforms::
|
|
17
|
+
require 'page-object/platforms/selenium/form'
|
|
18
|
+
self.class.send :include, PageObject::Platforms::Selenium::Form
|
|
19
19
|
else
|
|
20
|
-
raise ArgumentError, "expect platform to be :watir or :selenium"
|
|
20
|
+
raise ArgumentError, "expect platform to be :watir or :selenium"
|
|
21
21
|
end
|
|
22
22
|
end
|
|
23
23
|
end
|
|
@@ -1,25 +1,25 @@
|
|
|
1
1
|
module PageObject
|
|
2
2
|
module Elements
|
|
3
3
|
class HiddenField < Element
|
|
4
|
-
|
|
4
|
+
|
|
5
5
|
def click
|
|
6
6
|
raise "click is not available on hidden field element with Selenium or Watir"
|
|
7
7
|
end
|
|
8
8
|
|
|
9
9
|
protected
|
|
10
|
-
|
|
10
|
+
|
|
11
11
|
def self.watir_finders
|
|
12
12
|
super + [:tag_name, :text]
|
|
13
13
|
end
|
|
14
|
-
|
|
14
|
+
|
|
15
15
|
def self.watir_mapping
|
|
16
16
|
super.merge({:css => :tag_name})
|
|
17
17
|
end
|
|
18
|
-
|
|
18
|
+
|
|
19
19
|
def self.selenium_finders
|
|
20
20
|
super + [:css]
|
|
21
21
|
end
|
|
22
|
-
|
|
22
|
+
|
|
23
23
|
def self.selenium_mapping
|
|
24
24
|
super.merge({:tag_name => :css})
|
|
25
25
|
end
|
|
@@ -5,22 +5,22 @@ module PageObject
|
|
|
5
5
|
@element = element
|
|
6
6
|
include_platform_for platform
|
|
7
7
|
end
|
|
8
|
-
|
|
8
|
+
|
|
9
9
|
protected
|
|
10
|
-
|
|
10
|
+
|
|
11
11
|
def include_platform_for platform
|
|
12
12
|
super
|
|
13
13
|
if platform[:platform] == :watir
|
|
14
|
-
require 'page-object/platforms/
|
|
15
|
-
self.class.send :include, PageObject::Platforms::
|
|
14
|
+
require 'page-object/platforms/watir/image'
|
|
15
|
+
self.class.send :include, PageObject::Platforms::Watir::Image
|
|
16
16
|
elsif platform[:platform] == :selenium
|
|
17
|
-
require 'page-object/platforms/
|
|
18
|
-
self.class.send :include, PageObject::Platforms::
|
|
17
|
+
require 'page-object/platforms/selenium/image'
|
|
18
|
+
self.class.send :include, PageObject::Platforms::Selenium::Image
|
|
19
19
|
else
|
|
20
|
-
raise ArgumentError, "expect platform to be :watir or :selenium"
|
|
20
|
+
raise ArgumentError, "expect platform to be :watir or :selenium"
|
|
21
21
|
end
|
|
22
22
|
end
|
|
23
|
-
|
|
23
|
+
|
|
24
24
|
end
|
|
25
25
|
end
|
|
26
26
|
end
|
|
@@ -1,26 +1,26 @@
|
|
|
1
1
|
module PageObject
|
|
2
2
|
module Elements
|
|
3
3
|
class Link < Element
|
|
4
|
-
|
|
4
|
+
|
|
5
5
|
def initialize(element, platform)
|
|
6
6
|
@element = element
|
|
7
7
|
include_platform_for platform
|
|
8
8
|
end
|
|
9
|
-
|
|
9
|
+
|
|
10
10
|
protected
|
|
11
|
-
|
|
11
|
+
|
|
12
12
|
def self.watir_finders
|
|
13
13
|
super + [:href, :text]
|
|
14
14
|
end
|
|
15
|
-
|
|
15
|
+
|
|
16
16
|
def self.watir_mapping
|
|
17
|
-
super.merge({
|
|
17
|
+
super.merge({:link => :text, :link_text => :text})
|
|
18
18
|
end
|
|
19
|
-
|
|
19
|
+
|
|
20
20
|
def self.selenium_finders
|
|
21
21
|
super + [:link, :link_text]
|
|
22
22
|
end
|
|
23
|
-
|
|
23
|
+
|
|
24
24
|
def self.selenium_mapping
|
|
25
25
|
super.merge(:text => :link_text)
|
|
26
26
|
end
|
|
@@ -28,8 +28,8 @@ module PageObject
|
|
|
28
28
|
def include_platform_for platform
|
|
29
29
|
super
|
|
30
30
|
if platform[:platform] == :selenium
|
|
31
|
-
require 'page-object/platforms/
|
|
32
|
-
self.class.send :include, PageObject::Platforms::
|
|
31
|
+
require 'page-object/platforms/selenium/link'
|
|
32
|
+
self.class.send :include, PageObject::Platforms::Selenium::Link
|
|
33
33
|
end
|
|
34
34
|
end
|
|
35
35
|
end
|