page-object 0.7.5.1 → 0.7.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.
- data/ChangeLog +8 -0
- data/features/area.feature +9 -0
- data/features/audio.feature +9 -0
- data/features/canvas.feature +9 -0
- data/features/check_box.feature +9 -0
- data/features/element.feature +5 -0
- data/features/file_field.feature +9 -0
- data/features/form.feature +9 -0
- data/features/headings.feature +55 -0
- data/features/hidden_field.feature +9 -0
- data/features/html/double_click.html +13 -0
- data/features/html/failure.html +8 -0
- data/features/html/static_elements.html +1 -0
- data/features/image.feature +10 -0
- data/features/label.feature +9 -0
- data/features/link.feature +9 -0
- data/features/list_item.feature +9 -0
- data/features/ordered_list.feature +12 -0
- data/features/page_level_actions.feature +10 -0
- data/features/paragraph.feature +9 -0
- data/features/radio_button.feature +10 -0
- data/features/span.feature +9 -0
- data/features/step_definitions/element_steps.rb +19 -0
- data/features/step_definitions/page_level_actions_steps.rb +6 -0
- data/features/step_definitions/span_steps.rb +1 -1
- data/features/support/page.rb +30 -0
- data/features/support/url_helper.rb +4 -1
- data/features/table.feature +9 -0
- data/features/table_cell.feature +9 -0
- data/features/text_area.feature +8 -0
- data/features/unordered_list.feature +12 -0
- data/features/video.feature +9 -0
- data/lib/page-object.rb +4 -2
- data/lib/page-object/accessors.rb +57 -0
- data/lib/page-object/elements/button.rb +1 -1
- data/lib/page-object/elements/div.rb +1 -1
- data/lib/page-object/elements/element.rb +2 -7
- data/lib/page-object/elements/link.rb +1 -1
- data/lib/page-object/elements/select_list.rb +0 -4
- data/lib/page-object/elements/span.rb +1 -1
- data/lib/page-object/elements/text_field.rb +1 -1
- data/lib/page-object/platforms/selenium_webdriver/element.rb +8 -0
- data/lib/page-object/platforms/selenium_webdriver/page_object.rb +1 -1
- data/lib/page-object/platforms/watir_webdriver/element.rb +7 -0
- data/lib/page-object/version.rb +1 -1
- data/page-object.gemspec +1 -1
- data/spec/page-object/elements/selenium_element_spec.rb +1 -0
- data/spec/page-object/elements/watir_element_spec.rb +5 -0
- data/spec/page-object/page-object_spec.rb +35 -3
- metadata +10 -6
@@ -25,12 +25,7 @@ module PageObject
|
|
25
25
|
element.click
|
26
26
|
end
|
27
27
|
|
28
|
-
|
29
|
-
# double click the element
|
30
|
-
#
|
31
|
-
def double_click
|
32
|
-
element.double_click
|
33
|
-
end
|
28
|
+
|
34
29
|
|
35
30
|
#
|
36
31
|
# return true if the element is enabled
|
@@ -186,7 +181,7 @@ module PageObject
|
|
186
181
|
end
|
187
182
|
|
188
183
|
def self.selenium_finders
|
189
|
-
[:class, :id, :index, :name, :xpath]
|
184
|
+
[:class, :css, :id, :index, :name, :xpath]
|
190
185
|
end
|
191
186
|
|
192
187
|
def self.selenium_mapping
|
@@ -120,6 +120,14 @@ module PageObject
|
|
120
120
|
mouse.move_to(element)
|
121
121
|
end
|
122
122
|
|
123
|
+
#
|
124
|
+
# hover over the element
|
125
|
+
#
|
126
|
+
def double_click
|
127
|
+
mouse = Selenium::WebDriver::Mouse.new(bridge)
|
128
|
+
mouse.double_click(element)
|
129
|
+
end
|
130
|
+
|
123
131
|
#
|
124
132
|
# find the parent element
|
125
133
|
#
|
@@ -126,7 +126,7 @@ module PageObject
|
|
126
126
|
handles.each do |handle|
|
127
127
|
@browser.switch_to.window handle
|
128
128
|
if (key == :title and value == @browser.title) or
|
129
|
-
(key == :url and
|
129
|
+
(key == :url and @browser.current_url.include?(value))
|
130
130
|
return @browser.switch_to.window handle, &block
|
131
131
|
end
|
132
132
|
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.require_paths = ["lib"]
|
21
21
|
|
22
22
|
s.add_dependency 'watir-webdriver', '>= 0.6.1'
|
23
|
-
s.add_dependency 'selenium-webdriver', '>= 2.
|
23
|
+
s.add_dependency 'selenium-webdriver', '>= 2.26.0'
|
24
24
|
|
25
25
|
s.add_development_dependency 'rspec', '>= 2.6.0'
|
26
26
|
s.add_development_dependency 'cucumber', '< 1.2.0'
|
@@ -5,6 +5,10 @@ describe "Element for Watir" do
|
|
5
5
|
let(:watir_driver) { double('watir_driver') }
|
6
6
|
let(:watir_element) { ::PageObject::Elements::Element.new(watir_driver, :platform => :watir_webdriver) }
|
7
7
|
|
8
|
+
before(:each) do
|
9
|
+
Selenium::WebDriver::Mouse.stub(:new).and_return(watir_driver)
|
10
|
+
end
|
11
|
+
|
8
12
|
it "should know when it is visible" do
|
9
13
|
watir_driver.stub(:present?).and_return(true)
|
10
14
|
watir_driver.stub(:displayed?).and_return(true)
|
@@ -61,6 +65,7 @@ describe "Element for Watir" do
|
|
61
65
|
end
|
62
66
|
|
63
67
|
it "should be double clickable" do
|
68
|
+
|
64
69
|
watir_driver.should_receive(:double_click)
|
65
70
|
watir_element.double_click
|
66
71
|
end
|
@@ -115,15 +115,47 @@ describe PageObject do
|
|
115
115
|
it "should call initialize_page if it exists" do
|
116
116
|
class CallbackPage
|
117
117
|
include PageObject
|
118
|
-
attr_reader :
|
118
|
+
attr_reader :initialize_page_called
|
119
119
|
|
120
120
|
def initialize_page
|
121
|
-
@
|
121
|
+
@initialize_page_called = true
|
122
122
|
end
|
123
123
|
end
|
124
124
|
|
125
125
|
@page = CallbackPage.new(watir_browser)
|
126
|
-
@page.
|
126
|
+
@page.initialize_page_called.should be_true
|
127
|
+
end
|
128
|
+
|
129
|
+
it "should call initialize_accessors if it exists" do
|
130
|
+
class CallbackPage
|
131
|
+
include PageObject
|
132
|
+
attr_reader :initialize_accessors_called
|
133
|
+
|
134
|
+
def initialize_accessors
|
135
|
+
@initialize_accessors_called = true
|
136
|
+
end
|
137
|
+
end
|
138
|
+
|
139
|
+
@page = CallbackPage.new(watir_browser)
|
140
|
+
@page.initialize_accessors_called.should be_true
|
141
|
+
end
|
142
|
+
|
143
|
+
it "should call initialize_accessors before initialize_page if both exist" do
|
144
|
+
class CallbackPage
|
145
|
+
include PageObject
|
146
|
+
attr_reader :initialize_page, :initialize_accessors
|
147
|
+
|
148
|
+
def initialize_page
|
149
|
+
@initialize_accessors = Time.now
|
150
|
+
end
|
151
|
+
|
152
|
+
def initialize_page
|
153
|
+
@initialize_accessors = Time.now
|
154
|
+
end
|
155
|
+
end
|
156
|
+
|
157
|
+
@page = CallbackPage.new(watir_browser)
|
158
|
+
@page.initialize_accessors.usec.should be < @page.initialize_page.usec
|
127
159
|
end
|
128
160
|
|
129
161
|
it "should know which element has focus" do
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: page-object
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.7.
|
4
|
+
version: 0.7.6
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-
|
12
|
+
date: 2012-11-28 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: watir-webdriver
|
@@ -34,7 +34,7 @@ dependencies:
|
|
34
34
|
requirements:
|
35
35
|
- - ! '>='
|
36
36
|
- !ruby/object:Gem::Version
|
37
|
-
version: 2.
|
37
|
+
version: 2.26.0
|
38
38
|
type: :runtime
|
39
39
|
prerelease: false
|
40
40
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -42,7 +42,7 @@ dependencies:
|
|
42
42
|
requirements:
|
43
43
|
- - ! '>='
|
44
44
|
- !ruby/object:Gem::Version
|
45
|
-
version: 2.
|
45
|
+
version: 2.26.0
|
46
46
|
- !ruby/object:Gem::Dependency
|
47
47
|
name: rspec
|
48
48
|
requirement: !ruby/object:Gem::Requirement
|
@@ -140,6 +140,8 @@ files:
|
|
140
140
|
- features/headings.feature
|
141
141
|
- features/hidden_field.feature
|
142
142
|
- features/html/async.html
|
143
|
+
- features/html/double_click.html
|
144
|
+
- features/html/failure.html
|
143
145
|
- features/html/frame_1.html
|
144
146
|
- features/html/frame_2.html
|
145
147
|
- features/html/frame_3.html
|
@@ -371,7 +373,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
371
373
|
version: '0'
|
372
374
|
segments:
|
373
375
|
- 0
|
374
|
-
hash:
|
376
|
+
hash: 2544194930156169774
|
375
377
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
376
378
|
none: false
|
377
379
|
requirements:
|
@@ -380,7 +382,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
380
382
|
version: '0'
|
381
383
|
segments:
|
382
384
|
- 0
|
383
|
-
hash:
|
385
|
+
hash: 2544194930156169774
|
384
386
|
requirements: []
|
385
387
|
rubyforge_project: page-object
|
386
388
|
rubygems_version: 1.8.24
|
@@ -403,6 +405,8 @@ test_files:
|
|
403
405
|
- features/headings.feature
|
404
406
|
- features/hidden_field.feature
|
405
407
|
- features/html/async.html
|
408
|
+
- features/html/double_click.html
|
409
|
+
- features/html/failure.html
|
406
410
|
- features/html/frame_1.html
|
407
411
|
- features/html/frame_2.html
|
408
412
|
- features/html/frame_3.html
|