page-object 1.1.1 → 1.2.0
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.
- checksums.yaml +4 -4
- data/.ruby-version +1 -1
- data/ChangeLog +9 -0
- data/Gemfile +1 -0
- data/features/section.feature +4 -0
- data/features/step_definitions/section_steps.rb +10 -1
- data/lib/page-object.rb +16 -8
- data/lib/page-object/accessors.rb +2 -2
- data/lib/page-object/elements/button.rb +0 -7
- data/lib/page-object/elements/canvas.rb +1 -13
- data/lib/page-object/elements/check_box.rb +0 -12
- data/lib/page-object/elements/element.rb +52 -9
- data/lib/page-object/elements/file_field.rb +0 -12
- data/lib/page-object/elements/form.rb +0 -12
- data/lib/page-object/elements/image.rb +0 -12
- data/lib/page-object/elements/link.rb +0 -12
- data/lib/page-object/elements/ordered_list.rb +0 -13
- data/lib/page-object/elements/radio_button.rb +0 -12
- data/lib/page-object/elements/select_list.rb +0 -13
- data/lib/page-object/elements/table.rb +0 -13
- data/lib/page-object/elements/table_row.rb +0 -13
- data/lib/page-object/elements/text_area.rb +0 -14
- data/lib/page-object/elements/text_field.rb +0 -12
- data/lib/page-object/elements/unordered_list.rb +0 -12
- data/lib/page-object/elements/video.rb +0 -10
- data/lib/page-object/platforms/selenium_webdriver/element.rb +1 -1
- data/lib/page-object/platforms/selenium_webdriver/page_object.rb +26 -5
- data/lib/page-object/platforms/selenium_webdriver/select_list.rb +1 -1
- data/lib/page-object/platforms/selenium_webdriver/table.rb +1 -1
- data/lib/page-object/platforms/selenium_webdriver/table_row.rb +1 -1
- data/lib/page-object/platforms/watir_webdriver/element.rb +9 -2
- data/lib/page-object/platforms/watir_webdriver/ordered_list.rb +1 -1
- data/lib/page-object/platforms/watir_webdriver/page_object.rb +25 -4
- data/lib/page-object/platforms/watir_webdriver/select_list.rb +1 -1
- data/lib/page-object/platforms/watir_webdriver/table.rb +1 -1
- data/lib/page-object/platforms/watir_webdriver/table_row.rb +1 -1
- data/lib/page-object/platforms/watir_webdriver/unordered_list.rb +1 -1
- data/lib/page-object/section_collection.rb +16 -0
- data/lib/page-object/version.rb +1 -1
- data/lib/page-object/widgets.rb +14 -36
- data/spec/page-object/elements/canvas_spec.rb +3 -2
- data/spec/page-object/elements/ordered_list_spec.rb +2 -2
- data/spec/page-object/elements/select_list_spec.rb +2 -2
- data/spec/page-object/elements/unordered_list_spec.rb +2 -2
- data/spec/page-object/elements/video_spec.rb +12 -6
- data/spec/page-object/page-object_spec.rb +51 -23
- data/spec/page-object/page_section_spec.rb +9 -2
- data/spec/page-object/watir_accessors_spec.rb +1 -0
- metadata +4 -4
- data/lib/page-object/sections.rb +0 -29
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 441fe4c75e361d33bb3938c23b47d55701f83074
|
4
|
+
data.tar.gz: 81d70fd600660240c761665482abed0eabde01bc
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 312e009090468c99cde07ab1bdf51082018952303849f902846cfdf96c9cac8364fbb601d2f1d8db164bf54d326277aa0163c130f3dcedce1bc6b87929e7cb92
|
7
|
+
data.tar.gz: ee8d3bcd265dfc90ecef27c3473a2010afeafb14a7c44907fcbac8165a3ec1dadaa2ba82a2e56270005ed9dfb4224c26a15c9a6de2095182a63d9a52927e050a
|
data/.ruby-version
CHANGED
@@ -1 +1 @@
|
|
1
|
-
ruby-2.1
|
1
|
+
ruby-2.3.1
|
data/ChangeLog
CHANGED
@@ -1,3 +1,12 @@
|
|
1
|
+
Version 1.2.0 / 2016-6-15
|
2
|
+
* Enhancements
|
3
|
+
* Added array methods to section collections (Thanks Cohen Carlisle)
|
4
|
+
* Ensuring that method_missing is always forwarded to the root element (Thanks Cohen Carlisle)
|
5
|
+
* Added ability to call style method with no parameters (Thanks Justin Watts)
|
6
|
+
- with Watir will return all styles; with Selenium will return empty string
|
7
|
+
* Cleaned up frame and iframe nesting (Thanks Jon Snow)
|
8
|
+
* Support for adding other platforms (Thanks pvmeerbe)
|
9
|
+
|
1
10
|
=== Version 1.1.1 / 2016-1-7
|
2
11
|
* Enhancements
|
3
12
|
* Added row accessor method and support for finding row elements directly (Thanks Ethan Hedrick)
|
data/Gemfile
CHANGED
@@ -7,6 +7,7 @@ gem 'fuubar-cucumber', '>= 0.0.22'
|
|
7
7
|
gem 'rb-fsevent', :require => false if RUBY_PLATFORM =~ /darwin/i
|
8
8
|
gem 'growl'
|
9
9
|
gem 'guard-rspec'
|
10
|
+
gem 'listen', '3.0.8' #Last version that supports ruby 2.0
|
10
11
|
gem 'guard-cucumber'
|
11
12
|
gem 'net-http-persistent'
|
12
13
|
gem 'coveralls', require: false
|
data/features/section.feature
CHANGED
@@ -116,6 +116,10 @@ Feature: Sections
|
|
116
116
|
Given I search for a link in an indexed property located in a section
|
117
117
|
Then I should see the text "Success" in the section indexed link
|
118
118
|
|
119
|
+
Scenario: Sections roots can be accessed
|
120
|
+
When I have a page section
|
121
|
+
Then methods called on the section are passed to the root if missing
|
122
|
+
|
119
123
|
Scenario: Selecting multiple sections
|
120
124
|
When I select multiple sections
|
121
125
|
Then I should have a section collection containing the sections
|
@@ -265,4 +265,13 @@ end
|
|
265
265
|
|
266
266
|
Given(/^I search for a link in an indexed property located in a section$/) do
|
267
267
|
@link = @page.container.indexed_list['success'].indexed_link_element
|
268
|
-
end
|
268
|
+
end
|
269
|
+
|
270
|
+
When(/^I have a page section$/) do
|
271
|
+
@section = @page.container
|
272
|
+
end
|
273
|
+
|
274
|
+
Then(/^methods called on the section are passed to the root if missing$/) do
|
275
|
+
expect(-> { @section.visible? }).not_to raise_error
|
276
|
+
expect(@section.visible?).to be true
|
277
|
+
end
|
data/lib/page-object.rb
CHANGED
@@ -7,7 +7,7 @@ require 'page-object/page_factory'
|
|
7
7
|
require 'page-object/page_populator'
|
8
8
|
require 'page-object/javascript_framework_facade'
|
9
9
|
require 'page-object/indexed_properties'
|
10
|
-
require 'page-object/
|
10
|
+
require 'page-object/section_collection'
|
11
11
|
require 'page-object/widgets'
|
12
12
|
|
13
13
|
require 'watir-webdriver'
|
@@ -26,7 +26,7 @@ require 'selenium/webdriver/common/error'
|
|
26
26
|
# button we might define our page like the one below. We can then interact with
|
27
27
|
# the object using the generated methods.
|
28
28
|
#
|
29
|
-
# @example Login page example
|
29
|
+
# @example Login page example
|
30
30
|
# class LoginPage
|
31
31
|
# include PageObject
|
32
32
|
#
|
@@ -49,10 +49,18 @@ module PageObject
|
|
49
49
|
include LoadsPlatform
|
50
50
|
include ElementLocators
|
51
51
|
include PagePopulator
|
52
|
-
extend Forwardable
|
53
52
|
|
54
|
-
|
55
|
-
|
53
|
+
def method_missing(method, *args, &block)
|
54
|
+
if @root_element && @root_element.respond_to?(method)
|
55
|
+
@root_element.send(method, *args, &block)
|
56
|
+
else
|
57
|
+
super
|
58
|
+
end
|
59
|
+
end
|
60
|
+
|
61
|
+
def respond_to_missing?(method, include_all = false)
|
62
|
+
@root_element && @root_element.respond_to?(method) || super
|
63
|
+
end
|
56
64
|
|
57
65
|
# @return [Watir::Browser or Selenium::WebDriver::Driver] the platform browser passed to the constructor
|
58
66
|
attr_reader :browser
|
@@ -61,7 +69,7 @@ module PageObject
|
|
61
69
|
|
62
70
|
#
|
63
71
|
# Construct a new page object. Prior to browser initialization it will call
|
64
|
-
# a method named initialize_accessors if it exists. Upon initialization of
|
72
|
+
# a method named initialize_accessors if it exists. Upon initialization of
|
65
73
|
# the page it will call a method named initialize_page if it exists.
|
66
74
|
#
|
67
75
|
# @param [Watir::Browser, Watir::HTMLElement or Selenium::WebDriver::Driver, Selenium::WebDriver::Element] the platform browser/element to use
|
@@ -269,7 +277,7 @@ module PageObject
|
|
269
277
|
#
|
270
278
|
def execute_script(script, *args)
|
271
279
|
args.map! { |e| e.kind_of?(PageObject::Elements::Element) ? e.element : e }
|
272
|
-
platform.execute_script(script, *args)
|
280
|
+
platform.execute_script(script, *args)
|
273
281
|
end
|
274
282
|
|
275
283
|
#
|
@@ -313,7 +321,7 @@ module PageObject
|
|
313
321
|
#
|
314
322
|
def in_iframe(identifier, frame=nil, &block)
|
315
323
|
platform.in_iframe(identifier, frame, &block)
|
316
|
-
end
|
324
|
+
end
|
317
325
|
|
318
326
|
#
|
319
327
|
# Override the normal showModalDialog call is it opens a window instead
|
@@ -153,7 +153,7 @@ module PageObject
|
|
153
153
|
# @param block that contains the calls to elements that exist inside the frame.
|
154
154
|
#
|
155
155
|
def in_frame(identifier, frame=nil, &block)
|
156
|
-
frame = []
|
156
|
+
frame = frame.nil? ? [] : frame.dup
|
157
157
|
frame << {frame: identifier}
|
158
158
|
block.call(frame)
|
159
159
|
end
|
@@ -177,7 +177,7 @@ module PageObject
|
|
177
177
|
# @param block that contains the calls to elements that exist inside the iframe.
|
178
178
|
#
|
179
179
|
def in_iframe(identifier, frame=nil, &block)
|
180
|
-
frame = []
|
180
|
+
frame = frame.nil? ? [] : frame.dup
|
181
181
|
frame << {iframe: identifier}
|
182
182
|
block.call(frame)
|
183
183
|
end
|
@@ -18,13 +18,6 @@ module PageObject
|
|
18
18
|
super + [:value, :src, :alt]
|
19
19
|
end
|
20
20
|
|
21
|
-
def include_platform_for platform
|
22
|
-
super
|
23
|
-
if platform[:platform] == :selenium_webdriver
|
24
|
-
require 'page-object/platforms/selenium_webdriver/button'
|
25
|
-
self.class.send :include, PageObject::Platforms::SeleniumWebDriver::Button
|
26
|
-
end
|
27
|
-
end
|
28
21
|
end
|
29
22
|
|
30
23
|
::PageObject::Elements.type_to_class[:submit] = ::PageObject::Elements::Button
|
@@ -2,20 +2,8 @@
|
|
2
2
|
module PageObject
|
3
3
|
module Elements
|
4
4
|
class Canvas < Element
|
5
|
-
#
|
6
|
-
# return the width of the canvas
|
7
|
-
#
|
8
|
-
def width
|
9
|
-
attribute(:width).to_i
|
10
|
-
end
|
11
5
|
|
12
|
-
|
13
|
-
# return the height of the canvas
|
14
|
-
#
|
15
|
-
def height
|
16
|
-
attribute(:height).to_i
|
17
|
-
end
|
18
|
-
|
6
|
+
|
19
7
|
end
|
20
8
|
::PageObject::Elements.type_to_class[:canvas] = ::PageObject::Elements::Canvas
|
21
9
|
end
|
@@ -17,18 +17,6 @@ module PageObject
|
|
17
17
|
super + [:value, :label, :css]
|
18
18
|
end
|
19
19
|
|
20
|
-
def include_platform_for platform
|
21
|
-
super
|
22
|
-
if platform[:platform] == :watir_webdriver
|
23
|
-
require 'page-object/platforms/watir_webdriver/check_box'
|
24
|
-
self.class.send :include, PageObject::Platforms::WatirWebDriver::CheckBox
|
25
|
-
elsif platform[:platform] == :selenium_webdriver
|
26
|
-
require 'page-object/platforms/selenium_webdriver/check_box'
|
27
|
-
self.class.send :include, PageObject::Platforms::SeleniumWebDriver::CheckBox
|
28
|
-
else
|
29
|
-
raise ArgumentError, "expect platform to be :watir_webdriver or :selenium_webdriver"
|
30
|
-
end
|
31
|
-
end
|
32
20
|
end
|
33
21
|
|
34
22
|
::PageObject::Elements.type_to_class[:checkbox] = ::PageObject::Elements::CheckBox
|
@@ -44,7 +44,7 @@ module PageObject
|
|
44
44
|
#
|
45
45
|
# get the value of the given CSS property
|
46
46
|
#
|
47
|
-
def style(property)
|
47
|
+
def style(property = nil)
|
48
48
|
element.style property
|
49
49
|
end
|
50
50
|
|
@@ -207,20 +207,63 @@ module PageObject
|
|
207
207
|
end
|
208
208
|
|
209
209
|
def include_platform_for platform
|
210
|
-
|
211
|
-
|
212
|
-
|
213
|
-
|
214
|
-
|
215
|
-
|
216
|
-
|
217
|
-
|
210
|
+
platform_information = PageObject::Platforms.get
|
211
|
+
raise ArgumentError,"Expected hash with at least a key :platform for platform information! (#{platform.inspect})" unless platform.class == Hash && platform.has_key?(:platform)
|
212
|
+
platform_name = platform[:platform]
|
213
|
+
|
214
|
+
raise ArgumentError, "Unknown platform #{platform_name}! Expect platform to be one of the following: #{platform_information.keys.inspect}" unless platform_information.keys.include?(platform_name)
|
215
|
+
base_platform_class = "#{platform_information[platform_name]}::"
|
216
|
+
|
217
|
+
self.send :extend, constantize_classname(base_platform_class + "Element")
|
218
|
+
@platform = constantize_classname(base_platform_class+ "PageObject").new(@element)
|
219
|
+
|
220
|
+
# include class specific code
|
221
|
+
class_to_include = case
|
222
|
+
when self.class == PageObject::Elements::Element
|
223
|
+
# already loaded
|
224
|
+
return true
|
225
|
+
when self.class.name =~/PageObject:Elements::/
|
226
|
+
self.class
|
227
|
+
# inherited classes for example the widgets
|
228
|
+
else
|
229
|
+
parent_classes = self.class.ancestors.select { |item| item.name =~/PageObject::Elements::/ }
|
230
|
+
raise RuntimeError,"Could not identify page-object inherited class for #{self.class}!" if parent_classes.empty?
|
231
|
+
parent_classes.first
|
232
|
+
end
|
233
|
+
|
234
|
+
element_type_specific_code = File.expand_path(File.dirname(__FILE__) + "../../platforms/#{platform_name}/"+ get_element_type_underscored(class_to_include) )
|
235
|
+
if File.exist? element_type_specific_code + '.rb'
|
236
|
+
require element_type_specific_code
|
237
|
+
self.send :extend, constantize_classname( base_platform_class + get_element_type(class_to_include) )
|
218
238
|
end
|
239
|
+
|
219
240
|
end
|
220
241
|
|
221
242
|
def to_ary
|
222
243
|
nil
|
223
244
|
end
|
245
|
+
|
246
|
+
private
|
247
|
+
|
248
|
+
|
249
|
+
def constantize_classname name
|
250
|
+
name.split("::").inject(Object) { |k,n| k.const_get(n) }
|
251
|
+
end
|
252
|
+
|
253
|
+
|
254
|
+
def get_element_type(class_name = self.class)
|
255
|
+
class_name.name.split('::').last
|
256
|
+
end
|
257
|
+
|
258
|
+
# retrieved from ruby on rails underscore method
|
259
|
+
def get_element_type_underscored(class_name = self.class)
|
260
|
+
get_element_type(class_name).to_s.gsub(/::/, '/').
|
261
|
+
gsub(/([A-Z]+)([A-Z][a-z])/,'\1_\2').
|
262
|
+
gsub(/([a-z\d])([A-Z])/,'\1_\2').
|
263
|
+
tr("-", "_").
|
264
|
+
downcase
|
265
|
+
end
|
266
|
+
|
224
267
|
end
|
225
268
|
end
|
226
269
|
end
|
@@ -18,18 +18,6 @@ module PageObject
|
|
18
18
|
super + [:title, :label]
|
19
19
|
end
|
20
20
|
|
21
|
-
def include_platform_for platform
|
22
|
-
super
|
23
|
-
if platform[:platform] == :watir_webdriver
|
24
|
-
require 'page-object/platforms/watir_webdriver/file_field'
|
25
|
-
self.class.send :include, PageObject::Platforms::WatirWebDriver::FileField
|
26
|
-
elsif platform[:platform] == :selenium_webdriver
|
27
|
-
require 'page-object/platforms/selenium_webdriver/file_field'
|
28
|
-
self.class.send :include, PageObject::Platforms::SeleniumWebDriver::FileField
|
29
|
-
else
|
30
|
-
raise ArgumentError, "expect platform to be :watir_webdriver or :selenium_webdriver"
|
31
|
-
end
|
32
|
-
end
|
33
21
|
end
|
34
22
|
|
35
23
|
::PageObject::Elements.type_to_class[:file] = ::PageObject::Elements::FileField
|
@@ -17,18 +17,6 @@ module PageObject
|
|
17
17
|
super + [:action]
|
18
18
|
end
|
19
19
|
|
20
|
-
def include_platform_for platform
|
21
|
-
super
|
22
|
-
if platform[:platform] == :watir_webdriver
|
23
|
-
require 'page-object/platforms/watir_webdriver/form'
|
24
|
-
self.class.send :include, PageObject::Platforms::WatirWebDriver::Form
|
25
|
-
elsif platform[:platform] == :selenium_webdriver
|
26
|
-
require 'page-object/platforms/selenium_webdriver/form'
|
27
|
-
self.class.send :include, PageObject::Platforms::SeleniumWebDriver::Form
|
28
|
-
else
|
29
|
-
raise ArgumentError, "expect platform to be :watir_webdriver or :selenium_webdriver"
|
30
|
-
end
|
31
|
-
end
|
32
20
|
end
|
33
21
|
|
34
22
|
::PageObject::Elements.tag_to_class[:form] = ::PageObject::Elements::Form
|
@@ -16,18 +16,6 @@ module PageObject
|
|
16
16
|
super + [:alt, :src, :css]
|
17
17
|
end
|
18
18
|
|
19
|
-
def include_platform_for platform
|
20
|
-
super
|
21
|
-
if platform[:platform] == :watir_webdriver
|
22
|
-
require 'page-object/platforms/watir_webdriver/image'
|
23
|
-
self.class.send :include, PageObject::Platforms::WatirWebDriver::Image
|
24
|
-
elsif platform[:platform] == :selenium_webdriver
|
25
|
-
require 'page-object/platforms/selenium_webdriver/image'
|
26
|
-
self.class.send :include, PageObject::Platforms::SeleniumWebDriver::Image
|
27
|
-
else
|
28
|
-
raise ArgumentError, "expect platform to be :watir_webdriver or :selenium_webdriver"
|
29
|
-
end
|
30
|
-
end
|
31
19
|
end
|
32
20
|
|
33
21
|
::PageObject::Elements.tag_to_class[:img] = ::PageObject::Elements::Image
|
@@ -26,18 +26,6 @@ module PageObject
|
|
26
26
|
super.merge(:text => :link_text)
|
27
27
|
end
|
28
28
|
|
29
|
-
def include_platform_for platform
|
30
|
-
super
|
31
|
-
if platform[:platform] == :watir_webdriver
|
32
|
-
require 'page-object/platforms/watir_webdriver/link'
|
33
|
-
self.class.send :include, PageObject::Platforms::WatirWebDriver::Link
|
34
|
-
elsif platform[:platform] == :selenium_webdriver
|
35
|
-
require 'page-object/platforms/selenium_webdriver/link'
|
36
|
-
self.class.send :include, PageObject::Platforms::SeleniumWebDriver::Link
|
37
|
-
else
|
38
|
-
raise ArgumentError, "expect platform to be :watir_webdriver or :selenium_webdriver"
|
39
|
-
end
|
40
|
-
end
|
41
29
|
end
|
42
30
|
|
43
31
|
::PageObject::Elements.tag_to_class[:a] = ::PageObject::Elements::Link
|
@@ -30,19 +30,6 @@ module PageObject
|
|
30
30
|
[:class, :id, :index, :xpath]
|
31
31
|
end
|
32
32
|
|
33
|
-
def include_platform_for platform
|
34
|
-
super
|
35
|
-
if platform[:platform] == :watir_webdriver
|
36
|
-
require 'page-object/platforms/watir_webdriver/ordered_list'
|
37
|
-
self.class.send :include, PageObject::Platforms::WatirWebDriver::OrderedList
|
38
|
-
elsif platform[:platform] == :selenium_webdriver
|
39
|
-
require 'page-object/platforms/selenium_webdriver/ordered_list'
|
40
|
-
self.class.send :include, PageObject::Platforms::SeleniumWebDriver::OrderedList
|
41
|
-
else
|
42
|
-
raise ArgumentError, "expect platform to be :watir_webdriver or :selenium_webdriver"
|
43
|
-
end
|
44
|
-
end
|
45
|
-
|
46
33
|
end
|
47
34
|
|
48
35
|
::PageObject::Elements.tag_to_class[:ol] = ::PageObject::Elements::OrderedList
|
@@ -18,18 +18,6 @@ module PageObject
|
|
18
18
|
super + [:value, :label]
|
19
19
|
end
|
20
20
|
|
21
|
-
def include_platform_for platform
|
22
|
-
super
|
23
|
-
if platform[:platform] == :watir_webdriver
|
24
|
-
require 'page-object/platforms/watir_webdriver/radio_button'
|
25
|
-
self.class.send :include, PageObject::Platforms::WatirWebDriver::RadioButton
|
26
|
-
elsif platform[:platform] == :selenium_webdriver
|
27
|
-
require 'page-object/platforms/selenium_webdriver/radio_button'
|
28
|
-
self.class.send :include, PageObject::Platforms::SeleniumWebDriver::RadioButton
|
29
|
-
else
|
30
|
-
raise ArgumentError, "expect platform to be :watir_webdriver or :selenium_webdriver"
|
31
|
-
end
|
32
|
-
end
|
33
21
|
end
|
34
22
|
|
35
23
|
::PageObject::Elements.type_to_class[:radio] = ::PageObject::Elements::RadioButton
|
@@ -22,19 +22,6 @@ module PageObject
|
|
22
22
|
super + [:label]
|
23
23
|
end
|
24
24
|
|
25
|
-
def include_platform_for platform
|
26
|
-
super
|
27
|
-
if platform[:platform] == :watir_webdriver
|
28
|
-
require 'page-object/platforms/watir_webdriver/select_list'
|
29
|
-
self.class.send :include, PageObject::Platforms::WatirWebDriver::SelectList
|
30
|
-
elsif platform[:platform] == :selenium_webdriver
|
31
|
-
require 'page-object/platforms/selenium_webdriver/select_list'
|
32
|
-
self.class.send :include, PageObject::Platforms::SeleniumWebDriver::SelectList
|
33
|
-
else
|
34
|
-
raise ArgumentError, "expect platform to be :watir_webdriver or :selenium_webdriver"
|
35
|
-
end
|
36
|
-
end
|
37
|
-
|
38
25
|
end
|
39
26
|
|
40
27
|
::PageObject::Elements.tag_to_class[:select] = ::PageObject::Elements::SelectList
|
@@ -59,19 +59,6 @@ module PageObject
|
|
59
59
|
::PageObject::Elements::TableRow.new(row_element, platform)
|
60
60
|
end
|
61
61
|
|
62
|
-
|
63
|
-
def include_platform_for platform
|
64
|
-
super
|
65
|
-
if platform[:platform] == :watir_webdriver
|
66
|
-
require 'page-object/platforms/watir_webdriver/table'
|
67
|
-
self.class.send :include, PageObject::Platforms::WatirWebDriver::Table
|
68
|
-
elsif platform[:platform] == :selenium_webdriver
|
69
|
-
require 'page-object/platforms/selenium_webdriver/table'
|
70
|
-
self.class.send :include, PageObject::Platforms::SeleniumWebDriver::Table
|
71
|
-
else
|
72
|
-
raise ArgumentError, "expect platform to be :watir_webdriver or :selenium_webdriver"
|
73
|
-
end
|
74
|
-
end
|
75
62
|
end
|
76
63
|
|
77
64
|
::PageObject::Elements.tag_to_class[:table] = ::PageObject::Elements::Table
|