page-object 0.9.5 → 0.9.6
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/ChangeLog +6 -0
- data/features/step_definitions/frames_steps.rb +29 -2
- data/lib/page-object/accessors.rb +26 -2
- data/lib/page-object/platforms/selenium_webdriver/page_object.rb +13 -2
- data/lib/page-object/platforms/watir_webdriver/page_object.rb +19 -6
- data/lib/page-object/version.rb +1 -1
- data/page-object.gemspec +1 -1
- metadata +4 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b4427749437df9f9b92f059425594d069c769766
|
4
|
+
data.tar.gz: 4da711511069744d4412b5c68fc1ad531144eb22
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c1cb457f915d76893f24078e0f28f329a428c85df32c2e4b8161504fa53366d24fce799a6c5e104670c8d3864dda6813a94b8a6eb23de10186fa7eb17441582e
|
7
|
+
data.tar.gz: 6501e40f5db81abc012c9cea21dbc274a8118fe453150ff5f716a026baae9754180ba8222a541c678dd900403923eb31376608ee615dbdeef7e5ad5fcc323c12
|
data/ChangeLog
CHANGED
@@ -1,3 +1,9 @@
|
|
1
|
+
=== Version 0.9.6 / 2014-2-4
|
2
|
+
* Enhancements
|
3
|
+
* Updated to use the latest watir-webdriver 0.6.7
|
4
|
+
* Fixes
|
5
|
+
* Added in_iframe methods to match the updates to the watir-webdriver gem.
|
6
|
+
|
1
7
|
=== Version 0.9.5 / 2014-1-22
|
2
8
|
* Enhancements
|
3
9
|
* Updated to use the latest selenium-webdriver 2.39.0
|
@@ -28,13 +28,40 @@ class FramePage
|
|
28
28
|
|
29
29
|
end
|
30
30
|
|
31
|
+
class IFramePage
|
32
|
+
include PageObject
|
33
|
+
|
34
|
+
in_iframe(:id => 'frame_two_2') do |frame|
|
35
|
+
text_field(:text_field_2_id, :name => 'recieverElement', :frame => frame)
|
36
|
+
end
|
37
|
+
in_iframe(:id => 'frame_one_1') do |frame|
|
38
|
+
text_field(:text_field_1_id, :name => 'senderElement', :frame => frame)
|
39
|
+
end
|
40
|
+
|
41
|
+
in_iframe(:name => 'frame2') do |frame|
|
42
|
+
text_field(:text_field_2_name, :name => 'recieverElement', :frame => frame)
|
43
|
+
end
|
44
|
+
in_iframe(:name => 'frame1') do |frame|
|
45
|
+
text_field(:text_field_1_name, :name => 'senderElement', :frame => frame)
|
46
|
+
end
|
47
|
+
|
48
|
+
in_iframe(:index => 1) do |frame|
|
49
|
+
text_field(:text_field_2_index, :name => 'recieverElement', :frame => frame)
|
50
|
+
end
|
51
|
+
in_iframe(:index => 0) do |frame|
|
52
|
+
text_field(:text_field_1_index, :name => 'senderElement', :frame => frame)
|
53
|
+
end
|
54
|
+
|
55
|
+
end
|
56
|
+
|
57
|
+
|
31
58
|
Given /^I am on the frame elements page$/ do
|
32
59
|
@page = FramePage.new(@browser)
|
33
60
|
@page.navigate_to(UrlHelper.frame_elements)
|
34
61
|
end
|
35
62
|
|
36
63
|
Given /^I am on the iframe elements page$/ do
|
37
|
-
@page =
|
64
|
+
@page = IFramePage.new(@browser)
|
38
65
|
@page.navigate_to(UrlHelper.iframe_elements)
|
39
66
|
end
|
40
67
|
|
@@ -64,7 +91,7 @@ class NestedFramePage
|
|
64
91
|
include PageObject
|
65
92
|
|
66
93
|
in_frame(:id => 'two') do |frame|
|
67
|
-
|
94
|
+
in_iframe({:id => 'three'}, frame) do |nested_frame|
|
68
95
|
link(:nested_link, :id => 'four', :frame => nested_frame)
|
69
96
|
end
|
70
97
|
end
|
@@ -133,7 +133,7 @@ module PageObject
|
|
133
133
|
end
|
134
134
|
|
135
135
|
#
|
136
|
-
# Identify an element as existing within a frame
|
136
|
+
# Identify an element as existing within a frame . A frame parameter
|
137
137
|
# is passed to the block and must be passed to the other calls to PageObject.
|
138
138
|
# You can nest calls to in_frame by passing the frame to the next level.
|
139
139
|
#
|
@@ -152,7 +152,31 @@ module PageObject
|
|
152
152
|
#
|
153
153
|
def in_frame(identifier, frame=nil, &block)
|
154
154
|
frame = [] if frame.nil?
|
155
|
-
frame << identifier
|
155
|
+
frame << {frame: identifier}
|
156
|
+
block.call(frame)
|
157
|
+
end
|
158
|
+
|
159
|
+
#
|
160
|
+
# Identify an element as existing within an iframe. A frame parameter
|
161
|
+
# is passed to the block and must be passed to the other calls to PageObject.
|
162
|
+
# You can nest calls to in_frame by passing the frame to the next level.
|
163
|
+
#
|
164
|
+
# @example
|
165
|
+
# in_iframe(:id => 'frame_id') do |frame|
|
166
|
+
# text_field(:first_name, :id => 'fname', :frame => frame)
|
167
|
+
# end
|
168
|
+
#
|
169
|
+
# @param [Hash] identifier how we find the frame. The valid keys are:
|
170
|
+
# * :id => Watir and Selenium
|
171
|
+
# * :index => Watir and Selenium
|
172
|
+
# * :name => Watir and Selenium
|
173
|
+
# * :regexp => Watir only
|
174
|
+
# @param frame passed from a previous call to in_iframe. Used to nest calls
|
175
|
+
# @param block that contains the calls to elements that exist inside the iframe.
|
176
|
+
#
|
177
|
+
def in_iframe(identifier, frame=nil, &block)
|
178
|
+
frame = [] if frame.nil?
|
179
|
+
frame << {iframe: identifier}
|
156
180
|
block.call(frame)
|
157
181
|
end
|
158
182
|
|
@@ -147,7 +147,17 @@ module PageObject
|
|
147
147
|
# See PageObject#in_frame
|
148
148
|
#
|
149
149
|
def in_frame(identifier, frame=nil, &block)
|
150
|
-
switch_to_frame([identifier])
|
150
|
+
switch_to_frame([frame: identifier])
|
151
|
+
block.call(nil)
|
152
|
+
@browser.switch_to.default_content
|
153
|
+
end
|
154
|
+
|
155
|
+
#
|
156
|
+
# platform method to switch to an iframe and execute a block
|
157
|
+
# See PageObject#in_frame
|
158
|
+
#
|
159
|
+
def in_iframe(identifier, frame=nil, &block)
|
160
|
+
switch_to_frame([iframe: identifier])
|
151
161
|
block.call(nil)
|
152
162
|
@browser.switch_to.default_content
|
153
163
|
end
|
@@ -1088,7 +1098,8 @@ module PageObject
|
|
1088
1098
|
|
1089
1099
|
def switch_to_frame(frame_identifiers)
|
1090
1100
|
unless frame_identifiers.nil?
|
1091
|
-
frame_identifiers.each do |
|
1101
|
+
frame_identifiers.each do |frame|
|
1102
|
+
frame_id = frame.values.first
|
1092
1103
|
value = frame_id.values.first
|
1093
1104
|
@browser.switch_to.frame(value)
|
1094
1105
|
end
|
@@ -141,7 +141,17 @@ module PageObject
|
|
141
141
|
#
|
142
142
|
def in_frame(identifier, frame=nil, &block)
|
143
143
|
frame = [] if frame.nil?
|
144
|
-
frame << identifier
|
144
|
+
frame << {frame: identifier}
|
145
|
+
block.call(frame)
|
146
|
+
end
|
147
|
+
|
148
|
+
#
|
149
|
+
# platform method to switch to an iframe and execute a block
|
150
|
+
# See PageObject#in_frame
|
151
|
+
#
|
152
|
+
def in_iframe(identifier, frame=nil, &block)
|
153
|
+
frame = [] if frame.nil?
|
154
|
+
frame << {iframe: identifier}
|
145
155
|
block.call(frame)
|
146
156
|
end
|
147
157
|
|
@@ -994,13 +1004,15 @@ module PageObject
|
|
994
1004
|
def nested_frames(frame_identifiers)
|
995
1005
|
return if frame_identifiers.nil?
|
996
1006
|
frame_str = ''
|
997
|
-
frame_identifiers.each do |
|
1007
|
+
frame_identifiers.each do |frame|
|
1008
|
+
id = frame.values.first
|
1009
|
+
type = frame.keys.first
|
998
1010
|
value = id.values.first
|
999
1011
|
if value.is_a?(Regexp)
|
1000
|
-
frame_str += "
|
1012
|
+
frame_str += "#{type.to_s}(:#{id.keys.first} => #{value.inspect})."
|
1001
1013
|
else
|
1002
|
-
frame_str += "
|
1003
|
-
frame_str += "
|
1014
|
+
frame_str += "#{type.to_s}(:#{id.keys.first} => #{value})." if value.to_s.is_integer
|
1015
|
+
frame_str += "#{type.to_s}(:#{id.keys.first} => '#{value}')." unless value.to_s.is_integer
|
1004
1016
|
end
|
1005
1017
|
end
|
1006
1018
|
frame_str
|
@@ -1028,7 +1040,8 @@ module PageObject
|
|
1028
1040
|
|
1029
1041
|
def switch_to_frame(frame_identifiers)
|
1030
1042
|
unless frame_identifiers.nil?
|
1031
|
-
frame_identifiers.each do |
|
1043
|
+
frame_identifiers.each do |frame|
|
1044
|
+
frame_id = frame.values.first
|
1032
1045
|
value = frame_id.values.first
|
1033
1046
|
@browser.wd.switch_to.frame(value)
|
1034
1047
|
end
|
data/lib/page-object/version.rb
CHANGED
data/page-object.gemspec
CHANGED
@@ -20,7 +20,7 @@ Gem::Specification.new do |s|
|
|
20
20
|
s.executables = `git ls-files -- bin/*`.split("\n").map { |f| File.basename(f) }
|
21
21
|
s.require_paths = ["lib"]
|
22
22
|
|
23
|
-
s.add_dependency 'watir-webdriver', '>= 0.6.
|
23
|
+
s.add_dependency 'watir-webdriver', '>= 0.6.7'
|
24
24
|
s.add_dependency 'selenium-webdriver', '>= 2.39.0'
|
25
25
|
s.add_dependency 'page_navigation', '>= 0.9'
|
26
26
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: page-object
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.9.
|
4
|
+
version: 0.9.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jeff Morgan
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-02-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: watir-webdriver
|
@@ -16,14 +16,14 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - '>='
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 0.6.
|
19
|
+
version: 0.6.7
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - '>='
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: 0.6.
|
26
|
+
version: 0.6.7
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: selenium-webdriver
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|