page-object 1.2.2 → 2.0.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/.travis.yml +2 -2
- data/ChangeLog +10 -0
- data/Rakefile +4 -4
- data/cucumber.yml +1 -1
- data/lib/page-object.rb +3 -3
- data/lib/page-object/loads_platform.rb +1 -1
- data/lib/page-object/platforms.rb +1 -1
- data/lib/page-object/platforms/selenium_webdriver/element.rb +9 -2
- data/lib/page-object/platforms/{watir_webdriver.rb → watir.rb} +3 -3
- data/lib/page-object/platforms/{watir_webdriver → watir}/check_box.rb +0 -0
- data/lib/page-object/platforms/{watir_webdriver → watir}/element.rb +13 -11
- data/lib/page-object/platforms/{watir_webdriver → watir}/file_field.rb +0 -0
- data/lib/page-object/platforms/{watir_webdriver → watir}/form.rb +0 -0
- data/lib/page-object/platforms/{watir_webdriver → watir}/image.rb +0 -0
- data/lib/page-object/platforms/{watir_webdriver → watir}/link.rb +0 -0
- data/lib/page-object/platforms/{watir_webdriver → watir}/ordered_list.rb +1 -1
- data/lib/page-object/platforms/{watir_webdriver → watir}/page_object.rb +3 -3
- data/lib/page-object/platforms/{watir_webdriver → watir}/radio_button.rb +0 -0
- data/lib/page-object/platforms/{watir_webdriver → watir}/select_list.rb +0 -0
- data/lib/page-object/platforms/{watir_webdriver → watir}/table.rb +0 -0
- data/lib/page-object/platforms/{watir_webdriver → watir}/table_row.rb +0 -0
- data/lib/page-object/platforms/{watir_webdriver → watir}/text_area.rb +0 -0
- data/lib/page-object/platforms/{watir_webdriver → watir}/text_field.rb +0 -0
- data/lib/page-object/platforms/{watir_webdriver → watir}/unordered_list.rb +1 -1
- data/lib/page-object/version.rb +1 -1
- data/lib/page-object/widgets.rb +1 -1
- data/page-object.gemspec +17 -2
- metadata +38 -34
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: bd4df22c84861242c7966223ea92954fadee7da8
|
4
|
+
data.tar.gz: 02756b9b394d920567793cf474ed2c175428c79b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8d067360ea72b18ba508339efb5504d631b31fb55ef8a67d0cdb582b627fb57196d5818cd76fae440094d00ecd0ca1f19e1a426581ecdd887d7965d9ed6f89b4
|
7
|
+
data.tar.gz: 87c90ae9d1602f49c4cc203a5b1f2e4b1699412383f244deee88cdf1a94f4a07077f668459ee4ac2c34448e8ef72d9671aa06d96ddfc1baf68aecaa6136bc3fd
|
data/.travis.yml
CHANGED
@@ -21,5 +21,5 @@ before_script:
|
|
21
21
|
script: bundle exec rake $RAKE_TASK
|
22
22
|
env:
|
23
23
|
- RAKE_TASK=spec
|
24
|
-
- RAKE_TASK=features:
|
25
|
-
- RAKE_TASK=features:
|
24
|
+
- RAKE_TASK=features:watir WATIR_BRANCH=master
|
25
|
+
- RAKE_TASK=features:selenium
|
data/ChangeLog
CHANGED
@@ -1,3 +1,13 @@
|
|
1
|
+
Version 2.0.0 / 2016-11-22
|
2
|
+
* Enhancements
|
3
|
+
* Added focused? method on element. (Thanks Joe Schulte)
|
4
|
+
* Updated to use Watir 6 instead of Watir-Webdriver (Thanks Robert MacCracken)
|
5
|
+
This change requires updates to your project. You will need to update your
|
6
|
+
Gemfile to use 'watir' instead of 'watir-webdriver' and you will need to
|
7
|
+
update any require statement you might have. Also, Watir 6 is more strick
|
8
|
+
with text_field and text_area. You will have to use the proper one or it
|
9
|
+
will not locate the element.
|
10
|
+
|
1
11
|
Version 1.2.2 / 2016-11-17
|
2
12
|
* Fixes
|
3
13
|
* Fixed a bug that was introduced in the latest release
|
data/Rakefile
CHANGED
@@ -15,16 +15,16 @@ end
|
|
15
15
|
task :spec
|
16
16
|
|
17
17
|
namespace :features do
|
18
|
-
Cucumber::Rake::Task.new(:
|
19
|
-
t.profile = "
|
18
|
+
Cucumber::Rake::Task.new(:watir, "Run features with Watir") do |t|
|
19
|
+
t.profile = "watir"
|
20
20
|
end
|
21
21
|
|
22
|
-
Cucumber::Rake::Task.new(:
|
22
|
+
Cucumber::Rake::Task.new(:selenium, "Run features with Selenium") do |t|
|
23
23
|
t.profile = "selenium_webdriver"
|
24
24
|
end
|
25
25
|
|
26
26
|
desc 'Run all features'
|
27
|
-
task :all => [:
|
27
|
+
task :all => [:watir, :selenium]
|
28
28
|
end
|
29
29
|
|
30
30
|
desc 'Run all specs and cukes'
|
data/cucumber.yml
CHANGED
@@ -3,7 +3,7 @@ std_opts = "--no-source --color --format pretty" # Cucumber::Formatter::Fuubar"
|
|
3
3
|
%>
|
4
4
|
|
5
5
|
default: DRIVER=WATIR <%= std_opts %> --tags ~@selenium_only
|
6
|
-
|
6
|
+
watir: DRIVER=WATIR <%= std_opts %> --tags ~@selenium_only
|
7
7
|
selenium_webdriver: DRIVER=SELENIUM <%= std_opts %> --tags ~@watir_only
|
8
8
|
focus: DRIVER=WATIR <%= std_opts %> --tags ~@selenium_only --tags @focus
|
9
9
|
#focus: DRIVER=SELENIUM <%= std_opts %> --tags ~@watir_only --tags @focus
|
data/lib/page-object.rb
CHANGED
@@ -10,9 +10,9 @@ require 'page-object/indexed_properties'
|
|
10
10
|
require 'page-object/section_collection'
|
11
11
|
require 'page-object/widgets'
|
12
12
|
|
13
|
-
require 'watir
|
14
|
-
require 'page-object/platforms/
|
15
|
-
require 'page-object/platforms/
|
13
|
+
require 'watir'
|
14
|
+
require 'page-object/platforms/watir/element'
|
15
|
+
require 'page-object/platforms/watir/page_object'
|
16
16
|
require 'page-object/platforms/selenium_webdriver/element'
|
17
17
|
require 'page-object/platforms/selenium_webdriver/page_object'
|
18
18
|
|
@@ -8,7 +8,7 @@ module PageObject
|
|
8
8
|
# Determines which platform the Page Object should use based upon browser
|
9
9
|
#
|
10
10
|
# @example
|
11
|
-
# platform = load_platform(
|
11
|
+
# platform = load_platform(watir_browser, PageObject.Adapters.list).send(:new, watir_browser)
|
12
12
|
#
|
13
13
|
# @param [Object] A browser driver that has a supported adapter
|
14
14
|
# @param [adapters] a list of adapters that are currently supported
|
@@ -1,4 +1,4 @@
|
|
1
|
-
require 'watir
|
1
|
+
require 'watir/atoms'
|
2
2
|
|
3
3
|
module PageObject
|
4
4
|
module Platforms
|
@@ -156,6 +156,13 @@ module PageObject
|
|
156
156
|
bridge.execute_script("return arguments[0].focus()", element)
|
157
157
|
end
|
158
158
|
|
159
|
+
#
|
160
|
+
# return true if an element is focused
|
161
|
+
#
|
162
|
+
def focused?
|
163
|
+
element == bridge.active_element
|
164
|
+
end
|
165
|
+
|
159
166
|
#
|
160
167
|
# Select the provided text
|
161
168
|
#
|
@@ -320,7 +327,7 @@ module PageObject
|
|
320
327
|
private
|
321
328
|
|
322
329
|
def bridge
|
323
|
-
|
330
|
+
element.instance_variable_get(:@bridge)
|
324
331
|
end
|
325
332
|
end
|
326
333
|
end
|
@@ -7,7 +7,7 @@ module PageObject
|
|
7
7
|
end
|
8
8
|
|
9
9
|
def self.is_for?(browser)
|
10
|
-
require 'watir
|
10
|
+
require 'watir'
|
11
11
|
browser.is_a?(::Watir::Browser) || browser.is_a?(::Watir::HTMLElement)
|
12
12
|
end
|
13
13
|
|
@@ -17,7 +17,7 @@ module PageObject
|
|
17
17
|
end
|
18
18
|
|
19
19
|
def self.root_element_for root
|
20
|
-
Elements::Element.new root, :platform => :
|
20
|
+
Elements::Element.new root, :platform => :watir if root.is_a? ::Watir::HTMLElement
|
21
21
|
end
|
22
22
|
|
23
23
|
def self.browser_root_for browser
|
@@ -27,4 +27,4 @@ module PageObject
|
|
27
27
|
end
|
28
28
|
end
|
29
29
|
|
30
|
-
PageObject::Platforms.register(:
|
30
|
+
PageObject::Platforms.register(:watir, PageObject::Platforms::WatirWebDriver)
|
File without changes
|
@@ -1,4 +1,4 @@
|
|
1
|
-
require 'watir
|
1
|
+
require 'watir/extensions/select_text'
|
2
2
|
|
3
3
|
module PageObject
|
4
4
|
module Platforms
|
@@ -144,6 +144,13 @@ module PageObject
|
|
144
144
|
element.focus
|
145
145
|
end
|
146
146
|
|
147
|
+
#
|
148
|
+
# return true if an element is focused
|
149
|
+
#
|
150
|
+
def focused?
|
151
|
+
element.focused?
|
152
|
+
end
|
153
|
+
|
147
154
|
#
|
148
155
|
# Select the provided text
|
149
156
|
#
|
@@ -164,7 +171,7 @@ module PageObject
|
|
164
171
|
# @param [Integer] (defaults to: 5) seconds to wait before timing out
|
165
172
|
#
|
166
173
|
def when_present(timeout=::PageObject.default_element_wait)
|
167
|
-
element.
|
174
|
+
element.wait_until(timeout: timeout, message: "Element not present in #{timeout} seconds", &:present?)
|
168
175
|
self
|
169
176
|
end
|
170
177
|
|
@@ -175,7 +182,7 @@ module PageObject
|
|
175
182
|
# timing out
|
176
183
|
#
|
177
184
|
def when_not_present(timeout=::PageObject.default_element_wait)
|
178
|
-
element.
|
185
|
+
element.wait_while(timeout: timeout, message: "Element still present in #{timeout} seconds", &:present?)
|
179
186
|
end
|
180
187
|
|
181
188
|
#
|
@@ -184,9 +191,7 @@ module PageObject
|
|
184
191
|
# @param [Integer] (defaults to: 5) seconds to wait before timing out
|
185
192
|
#
|
186
193
|
def when_visible(timeout=::PageObject.default_element_wait)
|
187
|
-
|
188
|
-
visible?
|
189
|
-
end
|
194
|
+
element.wait_until(timeout: timeout, message: "Element not visible in #{timeout} seconds", &:visible?)
|
190
195
|
self
|
191
196
|
end
|
192
197
|
|
@@ -196,10 +201,7 @@ module PageObject
|
|
196
201
|
# @param [Integer] (defaults to: 5) seconds to wait before timing out
|
197
202
|
#
|
198
203
|
def when_not_visible(timeout=::PageObject.default_element_wait)
|
199
|
-
|
200
|
-
visible?
|
201
|
-
end
|
202
|
-
self
|
204
|
+
element.wait_while(timeout: timeout, message: "Element still visible after #{timeout} seconds", &:visible?)
|
203
205
|
end
|
204
206
|
|
205
207
|
#
|
@@ -210,7 +212,7 @@ module PageObject
|
|
210
212
|
# @param the block to execute when the event occurs
|
211
213
|
#
|
212
214
|
def wait_until(timeout=::PageObject.default_element_wait, message=nil, &block)
|
213
|
-
Object::Watir::Wait.until(timeout, message, &block)
|
215
|
+
Object::Watir::Wait.until(timeout: timeout, message: message, &block)
|
214
216
|
end
|
215
217
|
|
216
218
|
#
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
@@ -14,7 +14,7 @@ module PageObject
|
|
14
14
|
class PageObject
|
15
15
|
attr_reader :browser
|
16
16
|
|
17
|
-
PLATFORM_NAME = :
|
17
|
+
PLATFORM_NAME = :watir
|
18
18
|
|
19
19
|
def self.define_widget_accessors(widget_tag, widget_class, base_element_tag)
|
20
20
|
define_widget_singular_accessor(base_element_tag, widget_class, widget_tag)
|
@@ -69,7 +69,7 @@ module PageObject
|
|
69
69
|
# platform method to wait for a block to return true
|
70
70
|
# See PageObject#wait_until
|
71
71
|
def wait_until(timeout, message = nil, &block)
|
72
|
-
@browser.wait_until(timeout, message, &block)
|
72
|
+
@browser.wait_until(timeout: timeout, message: message, &block)
|
73
73
|
end
|
74
74
|
|
75
75
|
#
|
@@ -139,7 +139,7 @@ module PageObject
|
|
139
139
|
element = browser.execute_script("return document.activeElement")
|
140
140
|
type = element.type.to_sym if element.tag_name.to_sym == :input
|
141
141
|
cls = ::PageObject::Elements.element_class_for(element.tag_name, type)
|
142
|
-
# cls.new(element, :platform => :
|
142
|
+
# cls.new(element, :platform => :watir)
|
143
143
|
cls.new(element, :platform => self.class::PLATFORM_NAME)
|
144
144
|
end
|
145
145
|
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
data/lib/page-object/version.rb
CHANGED
data/lib/page-object/widgets.rb
CHANGED
data/page-object.gemspec
CHANGED
@@ -2,6 +2,19 @@
|
|
2
2
|
$:.push File.expand_path("../lib", __FILE__)
|
3
3
|
require "page-object/version"
|
4
4
|
|
5
|
+
message =
|
6
|
+
"""
|
7
|
+
This version of the gem moves to using the new Watir gem and away from
|
8
|
+
using Watir Webdriver. You will need to update you Gemfile to use `watir`
|
9
|
+
instead of `watir-webdriver` and update any `require` statements in your
|
10
|
+
code.
|
11
|
+
|
12
|
+
This is an important move as Watir Webdriver will not be supported any
|
13
|
+
longer. All new development has been moved to Watir. There are also
|
14
|
+
significant benefits to this move. See the Watir site at
|
15
|
+
https://watir.github.io for more details.
|
16
|
+
"""
|
17
|
+
|
5
18
|
Gem::Specification.new do |s|
|
6
19
|
s.name = "page-object"
|
7
20
|
s.version = PageObject::VERSION
|
@@ -16,8 +29,10 @@ Gem::Specification.new do |s|
|
|
16
29
|
s.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(pkg|spec|features|coverage)/}) }
|
17
30
|
s.require_paths = ["lib"]
|
18
31
|
|
19
|
-
s.
|
20
|
-
|
32
|
+
s.post_install_message = message
|
33
|
+
|
34
|
+
s.add_dependency 'watir', '~> 6.0'
|
35
|
+
s.add_dependency 'selenium-webdriver', '~> 3.0'
|
21
36
|
s.add_dependency 'page_navigation', '>= 0.9'
|
22
37
|
s.add_dependency 'net-http-persistent', '~> 2.9.4'
|
23
38
|
|
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:
|
4
|
+
version: 2.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jeff Morgan
|
@@ -9,42 +9,36 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2016-11-
|
12
|
+
date: 2016-11-23 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
|
-
name: watir
|
15
|
+
name: watir
|
16
16
|
requirement: !ruby/object:Gem::Requirement
|
17
17
|
requirements:
|
18
|
-
- - "
|
19
|
-
- !ruby/object:Gem::Version
|
20
|
-
version: 0.6.11
|
21
|
-
- - "<"
|
18
|
+
- - "~>"
|
22
19
|
- !ruby/object:Gem::Version
|
23
|
-
version: 0
|
20
|
+
version: '6.0'
|
24
21
|
type: :runtime
|
25
22
|
prerelease: false
|
26
23
|
version_requirements: !ruby/object:Gem::Requirement
|
27
24
|
requirements:
|
28
|
-
- - "
|
29
|
-
- !ruby/object:Gem::Version
|
30
|
-
version: 0.6.11
|
31
|
-
- - "<"
|
25
|
+
- - "~>"
|
32
26
|
- !ruby/object:Gem::Version
|
33
|
-
version: 0
|
27
|
+
version: '6.0'
|
34
28
|
- !ruby/object:Gem::Dependency
|
35
29
|
name: selenium-webdriver
|
36
30
|
requirement: !ruby/object:Gem::Requirement
|
37
31
|
requirements:
|
38
|
-
- - "
|
32
|
+
- - "~>"
|
39
33
|
- !ruby/object:Gem::Version
|
40
|
-
version:
|
34
|
+
version: '3.0'
|
41
35
|
type: :runtime
|
42
36
|
prerelease: false
|
43
37
|
version_requirements: !ruby/object:Gem::Requirement
|
44
38
|
requirements:
|
45
|
-
- - "
|
39
|
+
- - "~>"
|
46
40
|
- !ruby/object:Gem::Version
|
47
|
-
version:
|
41
|
+
version: '3.0'
|
48
42
|
- !ruby/object:Gem::Dependency
|
49
43
|
name: page_navigation
|
50
44
|
requirement: !ruby/object:Gem::Requirement
|
@@ -230,22 +224,22 @@ files:
|
|
230
224
|
- lib/page-object/platforms/selenium_webdriver/text_area.rb
|
231
225
|
- lib/page-object/platforms/selenium_webdriver/text_field.rb
|
232
226
|
- lib/page-object/platforms/selenium_webdriver/unordered_list.rb
|
233
|
-
- lib/page-object/platforms/
|
234
|
-
- lib/page-object/platforms/
|
235
|
-
- lib/page-object/platforms/
|
236
|
-
- lib/page-object/platforms/
|
237
|
-
- lib/page-object/platforms/
|
238
|
-
- lib/page-object/platforms/
|
239
|
-
- lib/page-object/platforms/
|
240
|
-
- lib/page-object/platforms/
|
241
|
-
- lib/page-object/platforms/
|
242
|
-
- lib/page-object/platforms/
|
243
|
-
- lib/page-object/platforms/
|
244
|
-
- lib/page-object/platforms/
|
245
|
-
- lib/page-object/platforms/
|
246
|
-
- lib/page-object/platforms/
|
247
|
-
- lib/page-object/platforms/
|
248
|
-
- lib/page-object/platforms/
|
227
|
+
- lib/page-object/platforms/watir.rb
|
228
|
+
- lib/page-object/platforms/watir/check_box.rb
|
229
|
+
- lib/page-object/platforms/watir/element.rb
|
230
|
+
- lib/page-object/platforms/watir/file_field.rb
|
231
|
+
- lib/page-object/platforms/watir/form.rb
|
232
|
+
- lib/page-object/platforms/watir/image.rb
|
233
|
+
- lib/page-object/platforms/watir/link.rb
|
234
|
+
- lib/page-object/platforms/watir/ordered_list.rb
|
235
|
+
- lib/page-object/platforms/watir/page_object.rb
|
236
|
+
- lib/page-object/platforms/watir/radio_button.rb
|
237
|
+
- lib/page-object/platforms/watir/select_list.rb
|
238
|
+
- lib/page-object/platforms/watir/table.rb
|
239
|
+
- lib/page-object/platforms/watir/table_row.rb
|
240
|
+
- lib/page-object/platforms/watir/text_area.rb
|
241
|
+
- lib/page-object/platforms/watir/text_field.rb
|
242
|
+
- lib/page-object/platforms/watir/unordered_list.rb
|
249
243
|
- lib/page-object/section_collection.rb
|
250
244
|
- lib/page-object/version.rb
|
251
245
|
- lib/page-object/widgets.rb
|
@@ -255,7 +249,17 @@ homepage: http://github.com/cheezy/page-object
|
|
255
249
|
licenses:
|
256
250
|
- MIT
|
257
251
|
metadata: {}
|
258
|
-
post_install_message:
|
252
|
+
post_install_message: |2
|
253
|
+
|
254
|
+
This version of the gem moves to using the new Watir gem and away from
|
255
|
+
using Watir Webdriver. You will need to update you Gemfile to use `watir`
|
256
|
+
instead of `watir-webdriver` and update any `require` statements in your
|
257
|
+
code.
|
258
|
+
|
259
|
+
This is an important move as Watir Webdriver will not be supported any
|
260
|
+
longer. All new development has been moved to Watir. There are also
|
261
|
+
significant benefits to this move. See the Watir site at
|
262
|
+
https://watir.github.io for more details.
|
259
263
|
rdoc_options: []
|
260
264
|
require_paths:
|
261
265
|
- lib
|