site_prism 5.2 → 6.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/README.md +6 -5
- data/lib/site_prism/addressable_url_matcher.rb +1 -1
- data/lib/site_prism/deprecator.rb +1 -1
- data/lib/site_prism/dsl/builder.rb +8 -7
- data/lib/site_prism/dsl/locators.rb +0 -9
- data/lib/site_prism/dsl/methods.rb +4 -4
- data/lib/site_prism/dsl.rb +1 -1
- data/lib/site_prism/error.rb +33 -40
- data/lib/site_prism/loadable.rb +16 -1
- data/lib/site_prism/page.rb +17 -29
- data/lib/site_prism/section.rb +1 -1
- data/lib/site_prism/timer.rb +2 -2
- data/lib/site_prism/version.rb +1 -1
- data/lib/site_prism/waiter.rb +1 -1
- metadata +54 -34
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 0b74cd59603d8fff11657b6d51ccfe37bddf78004ab4b55bb692f11a54754fc4
|
|
4
|
+
data.tar.gz: 618953ce4d7c07d4cac6ed0ed6dbc54b4e1dbd835cf28e39b6488dfb7c8d8698
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 8a7bd17d94fd99d4772e94df111312047fc644a21f80a6d8343a8167a4e84529692e8a0e6048232f54320961fa451ae670e746eca0df5854cb6bf7139e0fa94b
|
|
7
|
+
data.tar.gz: 53c0d351c47adefab78baf703f5e571dbc03914cc69c6906e52dd8bf7761fc246dbd0693f6b77e710a2c058e6c244813868190644154d0b8174238eaf9aaa38b
|
data/README.md
CHANGED
|
@@ -16,7 +16,7 @@ Make sure to add your project/company to https://github.com/site-prism/site_pris
|
|
|
16
16
|
|
|
17
17
|
Support us with a monthly donation and help us continue our activities by supporting us as a [backer](https://opencollective.com/site-prism#backer)
|
|
18
18
|
|
|
19
|
-
Become a sponsor and get your logo on our README on
|
|
19
|
+
Become a sponsor and get your logo on our README on GitHub with a link to your site: [How to Sponsor SitePrism?](https://opencollective.com/site-prism#sponsor)
|
|
20
20
|
|
|
21
21
|
Free Open Source software can only be maintained with the support of you. If you and/or your company find
|
|
22
22
|
value in SitePrism and would like to contribute financially to its ongoing maintenance and development,
|
|
@@ -30,11 +30,12 @@ We have a brief set of contribution documents [HERE](https://github.com/site-pri
|
|
|
30
30
|
|
|
31
31
|
## Supported Rubies / Browsers
|
|
32
32
|
|
|
33
|
-
SitePrism is built and tested to work on Ruby
|
|
34
|
-
If you are using SitePrism with Ruby 2.7 it is highly advisable to upgrade to a more modern
|
|
35
|
-
Ruby (v3+), if for any other reason, to get a performance improvement!
|
|
33
|
+
SitePrism is built and tested to work on Ruby 3.1 - 4.0
|
|
36
34
|
|
|
37
|
-
|
|
35
|
+
If you are using SitePrism with Ruby 3.1 it is highly advisable to upgrade to a more modern
|
|
36
|
+
Ruby (v3.3+), if for any other reason, to get a performance improvement!
|
|
37
|
+
|
|
38
|
+
SitePrism should run on all major browsers. The gem's integration tests are run on Chrome and Firefox
|
|
38
39
|
|
|
39
40
|
If you find you cannot integrate nicely with SitePrism, please open an
|
|
40
41
|
[issue request](https://github.com/site-prism/site_prism/issues/new)
|
|
@@ -86,7 +86,7 @@ module SitePrism
|
|
|
86
86
|
Addressable::URI.parse(url)
|
|
87
87
|
rescue Addressable::URI::InvalidURIError
|
|
88
88
|
SitePrism.logger.fatal("Ensure you don't use templated port numbers.")
|
|
89
|
-
raise SitePrism::InvalidUrlMatcherError
|
|
89
|
+
raise SitePrism::Error::InvalidUrlMatcherError
|
|
90
90
|
end
|
|
91
91
|
end
|
|
92
92
|
|
|
@@ -15,7 +15,7 @@ module SitePrism
|
|
|
15
15
|
warn("#{old} is being deprecated and should no longer be used.")
|
|
16
16
|
end
|
|
17
17
|
|
|
18
|
-
warn("#{old} will be removed in SitePrism
|
|
18
|
+
warn("#{old} will be removed in SitePrism v7. You have been warned!")
|
|
19
19
|
end
|
|
20
20
|
|
|
21
21
|
private
|
|
@@ -33,7 +33,7 @@ module SitePrism
|
|
|
33
33
|
end
|
|
34
34
|
|
|
35
35
|
def invalid_element_name
|
|
36
|
-
raise InvalidDSLNameError, dsl_name_error
|
|
36
|
+
raise SitePrism::Error::InvalidDSLNameError, dsl_name_error
|
|
37
37
|
end
|
|
38
38
|
|
|
39
39
|
def invalid_element_name?(name)
|
|
@@ -45,7 +45,7 @@ module SitePrism
|
|
|
45
45
|
end
|
|
46
46
|
|
|
47
47
|
def blank_element(name)
|
|
48
|
-
raise SitePrism::InvalidElementError, "#{name} has come from an item with no locators."
|
|
48
|
+
raise SitePrism::Error::InvalidElementError, "#{name} has come from an item with no locators."
|
|
49
49
|
end
|
|
50
50
|
|
|
51
51
|
def add_helper_methods(name, _type, *find_args)
|
|
@@ -83,7 +83,7 @@ module SitePrism
|
|
|
83
83
|
args = merge_args(find_args, runtime_args, visible: true)
|
|
84
84
|
return true if element_exists?(*args)
|
|
85
85
|
|
|
86
|
-
raise SitePrism::ElementVisibilityTimeoutError
|
|
86
|
+
raise SitePrism::Error::ElementVisibilityTimeoutError
|
|
87
87
|
end
|
|
88
88
|
end
|
|
89
89
|
end
|
|
@@ -95,7 +95,7 @@ module SitePrism
|
|
|
95
95
|
args = merge_args(find_args, runtime_args, visible: true)
|
|
96
96
|
return true if element_does_not_exist?(*args)
|
|
97
97
|
|
|
98
|
-
raise SitePrism::ElementInvisibilityTimeoutError
|
|
98
|
+
raise SitePrism::Error::ElementInvisibilityTimeoutError
|
|
99
99
|
end
|
|
100
100
|
end
|
|
101
101
|
end
|
|
@@ -106,13 +106,13 @@ module SitePrism
|
|
|
106
106
|
yield
|
|
107
107
|
end
|
|
108
108
|
|
|
109
|
-
def extract_section_options(args, &
|
|
109
|
+
def extract_section_options(args, &)
|
|
110
110
|
if args.first.is_a?(Class)
|
|
111
111
|
klass = args.shift
|
|
112
112
|
section_class = klass if klass <= SitePrism::Section
|
|
113
113
|
end
|
|
114
114
|
|
|
115
|
-
section_class = deduce_section_class(section_class, &
|
|
115
|
+
section_class = deduce_section_class(section_class, &)
|
|
116
116
|
arguments = deduce_search_arguments(section_class, args)
|
|
117
117
|
[section_class, arguments]
|
|
118
118
|
end
|
|
@@ -137,7 +137,8 @@ module SitePrism
|
|
|
137
137
|
|
|
138
138
|
def invalidate_search_arguments!
|
|
139
139
|
SitePrism.logger.error('Could not deduce search_arguments')
|
|
140
|
-
|
|
140
|
+
|
|
141
|
+
raise ArgumentError, 'search arguments are needed in `section` definition or alternatively use `set_default_search_arguments`'
|
|
141
142
|
end
|
|
142
143
|
end
|
|
143
144
|
end
|
|
@@ -14,7 +14,6 @@ module SitePrism
|
|
|
14
14
|
def _find(*find_args)
|
|
15
15
|
kwargs = find_args.pop
|
|
16
16
|
shadow_root = kwargs.delete(:shadow_root) { false }
|
|
17
|
-
check_capybara_version_if_creating_shadow_root if shadow_root
|
|
18
17
|
to_capybara_node.find(*find_args, **kwargs).tap do |element|
|
|
19
18
|
break element.shadow_root if shadow_root
|
|
20
19
|
end
|
|
@@ -23,7 +22,6 @@ module SitePrism
|
|
|
23
22
|
def _all(*find_args)
|
|
24
23
|
kwargs = find_args.pop
|
|
25
24
|
shadow_root = kwargs.delete(:shadow_root) { false }
|
|
26
|
-
check_capybara_version_if_creating_shadow_root if shadow_root
|
|
27
25
|
to_capybara_node.all(*find_args, **kwargs).tap do |element|
|
|
28
26
|
break element.map(&:shadow_root) if shadow_root
|
|
29
27
|
end
|
|
@@ -73,13 +71,6 @@ module SitePrism
|
|
|
73
71
|
options.merge!(runtime_args.pop) if runtime_args.last.is_a? Hash
|
|
74
72
|
options[:wait] = Capybara.default_max_wait_time unless options.key?(:wait)
|
|
75
73
|
end
|
|
76
|
-
|
|
77
|
-
def check_capybara_version_if_creating_shadow_root
|
|
78
|
-
minimum_version = '3.37.0'
|
|
79
|
-
raise SitePrism::UnsupportedGemVersionError unless Capybara::VERSION >= minimum_version
|
|
80
|
-
|
|
81
|
-
SitePrism.logger.error("Shadow root support requires Capybara version >= #{minimum_version}. You are using #{Capybara::VERSION}.")
|
|
82
|
-
end
|
|
83
74
|
end
|
|
84
75
|
end
|
|
85
76
|
end
|
|
@@ -67,8 +67,8 @@ module SitePrism
|
|
|
67
67
|
# Check the sections presence or non-presence -> @return [Boolean]
|
|
68
68
|
# Wait for the sections to be present or not -> @return [TrueClass, SitePrism::Error]
|
|
69
69
|
# Validate certain properties about the section
|
|
70
|
-
def sections(name, *args, &
|
|
71
|
-
section_class, find_args = extract_section_options(args, &
|
|
70
|
+
def sections(name, *args, &)
|
|
71
|
+
section_class, find_args = extract_section_options(args, &)
|
|
72
72
|
build(:sections, name, *find_args) do
|
|
73
73
|
define_method(name) do |*runtime_args, &runtime_block|
|
|
74
74
|
raise_if_runtime_block_supplied(self, name, runtime_block, :sections)
|
|
@@ -85,7 +85,7 @@ module SitePrism
|
|
|
85
85
|
scope_find_args = deduce_iframe_scope_find_args(args)
|
|
86
86
|
build(:iframe, name, *element_find_args) do
|
|
87
87
|
define_method(name) do |&block|
|
|
88
|
-
raise MissingBlockError unless block
|
|
88
|
+
raise SitePrism::Error::MissingBlockError unless block
|
|
89
89
|
|
|
90
90
|
within_frame(*scope_find_args) { block.call(klass.new) }
|
|
91
91
|
end
|
|
@@ -99,7 +99,7 @@ module SitePrism
|
|
|
99
99
|
|
|
100
100
|
SitePrism.logger.debug("Type passed in: #{type}")
|
|
101
101
|
SitePrism.logger.error("#{name} has been defined as a '#{type}' item in #{parent_object}. It does not accept build-time blocks.")
|
|
102
|
-
raise SitePrism::UnsupportedBlockError
|
|
102
|
+
raise SitePrism::Error::UnsupportedBlockError
|
|
103
103
|
end
|
|
104
104
|
|
|
105
105
|
def deduce_iframe_element_find_args(args)
|
data/lib/site_prism/dsl.rb
CHANGED
|
@@ -29,7 +29,7 @@ module SitePrism
|
|
|
29
29
|
|
|
30
30
|
SitePrism.logger.debug("Type passed in: #{type}")
|
|
31
31
|
SitePrism.logger.error("#{object.class}##{name} cannot accept runtime blocks")
|
|
32
|
-
raise SitePrism::UnsupportedBlockError
|
|
32
|
+
raise SitePrism::Error::UnsupportedBlockError
|
|
33
33
|
end
|
|
34
34
|
end
|
|
35
35
|
end
|
data/lib/site_prism/error.rb
CHANGED
|
@@ -1,56 +1,49 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
3
|
module SitePrism
|
|
4
|
-
|
|
5
|
-
|
|
4
|
+
module Error
|
|
5
|
+
# Generic SitePrism family of errors which specific errors are children of
|
|
6
|
+
class SitePrismError < StandardError; end
|
|
6
7
|
|
|
7
|
-
|
|
8
|
-
|
|
8
|
+
# A page calls #load with no URL set
|
|
9
|
+
class NoUrlForPageError < SitePrismError; end
|
|
9
10
|
|
|
10
|
-
|
|
11
|
-
|
|
11
|
+
# A page calls #displayed? with no URL matcher set
|
|
12
|
+
class NoUrlMatcherForPageError < SitePrismError; end
|
|
12
13
|
|
|
13
|
-
|
|
14
|
-
|
|
14
|
+
# The URL matcher was not recognised as a Regex or String and as such
|
|
15
|
+
# it couldn't be parsed by Addressable. It also could be caused by
|
|
16
|
+
# the usage of templated port numbers - which aren't supported
|
|
17
|
+
class InvalidUrlMatcherError < SitePrismError; end
|
|
15
18
|
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
# the usage of templated port numbers - which aren't supported
|
|
19
|
-
class InvalidUrlMatcherError < PageLoadError; end
|
|
19
|
+
# A SitePrism defined DSL item was defined without a selector
|
|
20
|
+
class InvalidElementError < SitePrismError; end
|
|
20
21
|
|
|
21
|
-
|
|
22
|
-
|
|
22
|
+
# The condition that was being evaluated inside the block did not evaluate
|
|
23
|
+
# to true within the time limit
|
|
24
|
+
class TimeoutError < SitePrismError; end
|
|
23
25
|
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
26
|
+
# The wait_until_*_visible meta-programmed method didn't evaluate to true
|
|
27
|
+
# within the prescribed time limit
|
|
28
|
+
class ElementVisibilityTimeoutError < TimeoutError; end
|
|
27
29
|
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
30
|
+
# The wait_until_*_invisible meta-programmed method didn't evaluate to true
|
|
31
|
+
# within the prescribed time limit
|
|
32
|
+
class ElementInvisibilityTimeoutError < TimeoutError; end
|
|
31
33
|
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
class ElementInvisibilityTimeoutError < TimeoutError; end
|
|
34
|
+
# A Block was passed to the method, which it cannot interpret
|
|
35
|
+
class UnsupportedBlockError < SitePrismError; end
|
|
35
36
|
|
|
36
|
-
|
|
37
|
-
|
|
37
|
+
# A Block was required, but not supplied
|
|
38
|
+
class MissingBlockError < SitePrismError; end
|
|
38
39
|
|
|
39
|
-
|
|
40
|
-
|
|
40
|
+
# A page was loaded then failed one of the validations defined by the user
|
|
41
|
+
class FailedLoadValidationError < SitePrismError; end
|
|
41
42
|
|
|
42
|
-
|
|
43
|
-
|
|
43
|
+
# DSL items are not permitted to be named in certain ways
|
|
44
|
+
class InvalidDSLNameError < SitePrismError; end
|
|
44
45
|
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
# Generic Attribute validation family of errors inherit from this error
|
|
49
|
-
class AttributeValidationError < SitePrismError; end
|
|
50
|
-
|
|
51
|
-
# DSL items are not permitted to be named in certain ways
|
|
52
|
-
class InvalidDSLNameError < AttributeValidationError; end
|
|
53
|
-
|
|
54
|
-
# The version of the target gem is unsupported, so using that feature is not possible
|
|
55
|
-
class UnsupportedGemVersionError < SitePrismError; end
|
|
46
|
+
# The version of the target gem is unsupported, so using that feature is not possible
|
|
47
|
+
class UnsupportedGemVersionError < SitePrismError; end
|
|
48
|
+
end
|
|
56
49
|
end
|
data/lib/site_prism/loadable.rb
CHANGED
|
@@ -20,6 +20,9 @@ module SitePrism
|
|
|
20
20
|
# Executes the given block after the page is loaded.
|
|
21
21
|
#
|
|
22
22
|
# The loadable object instance is yielded into the block.
|
|
23
|
+
#
|
|
24
|
+
# NB: This will only trigger load validations if the page is already **not** loaded. If you want to verbosely trigger
|
|
25
|
+
# the load validations irrespective, use `#run_load_validations`; which will clear any previous cache and then re-run the validations
|
|
23
26
|
def when_loaded
|
|
24
27
|
# Get original loaded value, in case we are nested
|
|
25
28
|
# inside another when_loaded block.
|
|
@@ -30,7 +33,7 @@ module SitePrism
|
|
|
30
33
|
|
|
31
34
|
# If the page hasn't loaded. Then crash and return the error message.
|
|
32
35
|
# If one isn't defined, just return the Error code.
|
|
33
|
-
raise SitePrism::FailedLoadValidationError, load_error unless loaded
|
|
36
|
+
raise SitePrism::Error::FailedLoadValidationError, load_error unless loaded
|
|
34
37
|
|
|
35
38
|
# Return the yield value of the block if one was supplied.
|
|
36
39
|
yield self if block_given?
|
|
@@ -53,6 +56,18 @@ module SitePrism
|
|
|
53
56
|
load_validations_pass?
|
|
54
57
|
end
|
|
55
58
|
|
|
59
|
+
# Executes the `when_loaded` check to determine if the page is loaded, but also clears any previous cache
|
|
60
|
+
# of the loaded state and load error
|
|
61
|
+
#
|
|
62
|
+
# This is useful if you want to re-run the load validations irrespective of whether the page was previously loaded or not
|
|
63
|
+
#
|
|
64
|
+
# The loadable object instance is yielded into the block.
|
|
65
|
+
def run_load_validations
|
|
66
|
+
self.loaded = false
|
|
67
|
+
self.load_error = nil
|
|
68
|
+
when_loaded
|
|
69
|
+
end
|
|
70
|
+
|
|
56
71
|
private
|
|
57
72
|
|
|
58
73
|
def load_validations_pass?
|
data/lib/site_prism/page.rb
CHANGED
|
@@ -8,8 +8,7 @@ module SitePrism
|
|
|
8
8
|
# Instances of this class represent a full web page that can either be dynamically navigated to
|
|
9
9
|
# through clicking buttons or filling in fields, or verbosely loaded by using the `#load` method
|
|
10
10
|
#
|
|
11
|
-
# All method calls made whilst on a page are scoped using `#to_capybara_node` which defaults to the
|
|
12
|
-
# current Capybara session or the `@page` that has been loaded in-line
|
|
11
|
+
# All method calls made whilst on a page are scoped using `#to_capybara_node` which defaults to the current Capybara session
|
|
13
12
|
class Page
|
|
14
13
|
include Capybara::DSL
|
|
15
14
|
include ElementChecker
|
|
@@ -44,29 +43,24 @@ module SitePrism
|
|
|
44
43
|
|
|
45
44
|
# This scopes our calls inside Page correctly to the `Capybara::Session`
|
|
46
45
|
#
|
|
47
|
-
# @return
|
|
46
|
+
# @return Capybara::Session
|
|
48
47
|
def to_capybara_node
|
|
49
|
-
|
|
48
|
+
Capybara.current_session
|
|
50
49
|
end
|
|
51
50
|
|
|
52
51
|
# Loads the page.
|
|
53
|
-
# @param
|
|
54
|
-
# @param
|
|
55
|
-
# The page will yield the block if defined
|
|
52
|
+
# @param params - An optional set of parameters
|
|
53
|
+
# @param & - An optional block to run once the page is loaded
|
|
54
|
+
# The page will yield the block if defined
|
|
56
55
|
#
|
|
57
|
-
# Executes the block, if given
|
|
58
|
-
# Runs load validations on the page, unless input is a string
|
|
56
|
+
# Executes the block, if given
|
|
59
57
|
#
|
|
60
|
-
# When calling #load, all the validations that are set will be
|
|
61
|
-
def load(
|
|
58
|
+
# When calling #load, all the validations that are set will be run in order
|
|
59
|
+
def load(params = {}, &)
|
|
62
60
|
self.loaded = false
|
|
63
61
|
SitePrism.logger.debug("Reset loaded state on #{self.class}.")
|
|
64
62
|
|
|
65
|
-
return_yield =
|
|
66
|
-
load_html_string(expansion_or_html, &block)
|
|
67
|
-
else
|
|
68
|
-
load_html_website(expansion_or_html, &block)
|
|
69
|
-
end
|
|
63
|
+
return_yield = load_html_website(params, &)
|
|
70
64
|
|
|
71
65
|
# Ensure that we represent that the page we loaded is now indeed loaded!
|
|
72
66
|
# This ensures that future calls to #loaded? do not perform the
|
|
@@ -84,7 +78,7 @@ module SitePrism
|
|
|
84
78
|
# @return [Boolean]
|
|
85
79
|
def displayed?(*args)
|
|
86
80
|
wait_until_displayed(*args)
|
|
87
|
-
rescue SitePrism::TimeoutError
|
|
81
|
+
rescue SitePrism::Error::TimeoutError
|
|
88
82
|
false
|
|
89
83
|
end
|
|
90
84
|
|
|
@@ -94,7 +88,7 @@ module SitePrism
|
|
|
94
88
|
#
|
|
95
89
|
# @return [Boolean]
|
|
96
90
|
def wait_until_displayed(*args)
|
|
97
|
-
raise SitePrism::NoUrlMatcherForPageError unless url_matcher
|
|
91
|
+
raise SitePrism::Error::NoUrlMatcherForPageError unless url_matcher
|
|
98
92
|
|
|
99
93
|
expected_mappings = args.last.is_a?(::Hash) ? args.pop : {}
|
|
100
94
|
seconds = args&.first || Capybara.default_max_wait_time
|
|
@@ -153,7 +147,7 @@ module SitePrism
|
|
|
153
147
|
elsif url_matcher.respond_to?(:to_str)
|
|
154
148
|
url_matches_by_template?(expected_mappings)
|
|
155
149
|
else
|
|
156
|
-
raise SitePrism::InvalidUrlMatcherError
|
|
150
|
+
raise SitePrism::Error::InvalidUrlMatcherError
|
|
157
151
|
end
|
|
158
152
|
end
|
|
159
153
|
|
|
@@ -169,16 +163,10 @@ module SitePrism
|
|
|
169
163
|
@matcher_template ||= AddressableUrlMatcher.new(url_matcher)
|
|
170
164
|
end
|
|
171
165
|
|
|
172
|
-
def
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
end
|
|
177
|
-
|
|
178
|
-
def load_html_website(html, &block)
|
|
179
|
-
with_validations = html.delete(:with_validations) { true }
|
|
180
|
-
expanded_url = url(html)
|
|
181
|
-
raise SitePrism::NoUrlForPageError unless expanded_url
|
|
166
|
+
def load_html_website(params, &block)
|
|
167
|
+
with_validations = params.delete(:with_validations) { true }
|
|
168
|
+
expanded_url = url(params)
|
|
169
|
+
raise SitePrism::Error::NoUrlForPageError unless expanded_url
|
|
182
170
|
|
|
183
171
|
visit expanded_url
|
|
184
172
|
if with_validations
|
data/lib/site_prism/section.rb
CHANGED
|
@@ -5,7 +5,7 @@ module SitePrism
|
|
|
5
5
|
#
|
|
6
6
|
# SitePrism Sections are the mid level construct of the POM framework
|
|
7
7
|
#
|
|
8
|
-
# Instances of this class represent a
|
|
8
|
+
# Instances of this class represent a part of a web page that can either sit inside a SitePrism::Page
|
|
9
9
|
# or sit inside another N sections, which then eventually will sit inside a page
|
|
10
10
|
#
|
|
11
11
|
# All method calls made whilst on a page are scoped using `#to_capybara_node` which will be represented by
|
data/lib/site_prism/timer.rb
CHANGED
data/lib/site_prism/version.rb
CHANGED
data/lib/site_prism/waiter.rb
CHANGED
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: site_prism
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: '
|
|
4
|
+
version: '6.0'
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Luke Hill
|
|
@@ -29,20 +29,48 @@ dependencies:
|
|
|
29
29
|
- - ">="
|
|
30
30
|
- !ruby/object:Gem::Version
|
|
31
31
|
version: 2.8.4
|
|
32
|
+
- !ruby/object:Gem::Dependency
|
|
33
|
+
name: base64
|
|
34
|
+
requirement: !ruby/object:Gem::Requirement
|
|
35
|
+
requirements:
|
|
36
|
+
- - "~>"
|
|
37
|
+
- !ruby/object:Gem::Version
|
|
38
|
+
version: 0.3.0
|
|
39
|
+
type: :runtime
|
|
40
|
+
prerelease: false
|
|
41
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
42
|
+
requirements:
|
|
43
|
+
- - "~>"
|
|
44
|
+
- !ruby/object:Gem::Version
|
|
45
|
+
version: 0.3.0
|
|
32
46
|
- !ruby/object:Gem::Dependency
|
|
33
47
|
name: capybara
|
|
34
48
|
requirement: !ruby/object:Gem::Requirement
|
|
35
49
|
requirements:
|
|
36
50
|
- - "~>"
|
|
37
51
|
- !ruby/object:Gem::Version
|
|
38
|
-
version: '3.
|
|
52
|
+
version: '3.37'
|
|
39
53
|
type: :runtime
|
|
40
54
|
prerelease: false
|
|
41
55
|
version_requirements: !ruby/object:Gem::Requirement
|
|
42
56
|
requirements:
|
|
43
57
|
- - "~>"
|
|
44
58
|
- !ruby/object:Gem::Version
|
|
45
|
-
version: '3.
|
|
59
|
+
version: '3.37'
|
|
60
|
+
- !ruby/object:Gem::Dependency
|
|
61
|
+
name: logger
|
|
62
|
+
requirement: !ruby/object:Gem::Requirement
|
|
63
|
+
requirements:
|
|
64
|
+
- - "~>"
|
|
65
|
+
- !ruby/object:Gem::Version
|
|
66
|
+
version: '1.7'
|
|
67
|
+
type: :runtime
|
|
68
|
+
prerelease: false
|
|
69
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
70
|
+
requirements:
|
|
71
|
+
- - "~>"
|
|
72
|
+
- !ruby/object:Gem::Version
|
|
73
|
+
version: '1.7'
|
|
46
74
|
- !ruby/object:Gem::Dependency
|
|
47
75
|
name: site_prism-all_there
|
|
48
76
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -67,16 +95,22 @@ dependencies:
|
|
|
67
95
|
name: automation_helpers
|
|
68
96
|
requirement: !ruby/object:Gem::Requirement
|
|
69
97
|
requirements:
|
|
70
|
-
- - "
|
|
98
|
+
- - ">"
|
|
99
|
+
- !ruby/object:Gem::Version
|
|
100
|
+
version: '5'
|
|
101
|
+
- - "<"
|
|
71
102
|
- !ruby/object:Gem::Version
|
|
72
|
-
version: '
|
|
103
|
+
version: '7'
|
|
73
104
|
type: :development
|
|
74
105
|
prerelease: false
|
|
75
106
|
version_requirements: !ruby/object:Gem::Requirement
|
|
76
107
|
requirements:
|
|
77
|
-
- - "
|
|
108
|
+
- - ">"
|
|
78
109
|
- !ruby/object:Gem::Version
|
|
79
|
-
version: '5
|
|
110
|
+
version: '5'
|
|
111
|
+
- - "<"
|
|
112
|
+
- !ruby/object:Gem::Version
|
|
113
|
+
version: '7'
|
|
80
114
|
- !ruby/object:Gem::Dependency
|
|
81
115
|
name: cucumber
|
|
82
116
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -86,7 +120,7 @@ dependencies:
|
|
|
86
120
|
version: '7'
|
|
87
121
|
- - "<"
|
|
88
122
|
- !ruby/object:Gem::Version
|
|
89
|
-
version: '
|
|
123
|
+
version: '12'
|
|
90
124
|
type: :development
|
|
91
125
|
prerelease: false
|
|
92
126
|
version_requirements: !ruby/object:Gem::Requirement
|
|
@@ -96,7 +130,7 @@ dependencies:
|
|
|
96
130
|
version: '7'
|
|
97
131
|
- - "<"
|
|
98
132
|
- !ruby/object:Gem::Version
|
|
99
|
-
version: '
|
|
133
|
+
version: '12'
|
|
100
134
|
- !ruby/object:Gem::Dependency
|
|
101
135
|
name: rspec
|
|
102
136
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -117,56 +151,56 @@ dependencies:
|
|
|
117
151
|
requirements:
|
|
118
152
|
- - "~>"
|
|
119
153
|
- !ruby/object:Gem::Version
|
|
120
|
-
version: 1.
|
|
154
|
+
version: 1.85.1
|
|
121
155
|
type: :development
|
|
122
156
|
prerelease: false
|
|
123
157
|
version_requirements: !ruby/object:Gem::Requirement
|
|
124
158
|
requirements:
|
|
125
159
|
- - "~>"
|
|
126
160
|
- !ruby/object:Gem::Version
|
|
127
|
-
version: 1.
|
|
161
|
+
version: 1.85.1
|
|
128
162
|
- !ruby/object:Gem::Dependency
|
|
129
163
|
name: rubocop-performance
|
|
130
164
|
requirement: !ruby/object:Gem::Requirement
|
|
131
165
|
requirements:
|
|
132
166
|
- - "~>"
|
|
133
167
|
- !ruby/object:Gem::Version
|
|
134
|
-
version: 1.
|
|
168
|
+
version: 1.26.1
|
|
135
169
|
type: :development
|
|
136
170
|
prerelease: false
|
|
137
171
|
version_requirements: !ruby/object:Gem::Requirement
|
|
138
172
|
requirements:
|
|
139
173
|
- - "~>"
|
|
140
174
|
- !ruby/object:Gem::Version
|
|
141
|
-
version: 1.
|
|
175
|
+
version: 1.26.1
|
|
142
176
|
- !ruby/object:Gem::Dependency
|
|
143
177
|
name: rubocop-rspec
|
|
144
178
|
requirement: !ruby/object:Gem::Requirement
|
|
145
179
|
requirements:
|
|
146
180
|
- - "~>"
|
|
147
181
|
- !ruby/object:Gem::Version
|
|
148
|
-
version: 3.
|
|
182
|
+
version: 3.8.0
|
|
149
183
|
type: :development
|
|
150
184
|
prerelease: false
|
|
151
185
|
version_requirements: !ruby/object:Gem::Requirement
|
|
152
186
|
requirements:
|
|
153
187
|
- - "~>"
|
|
154
188
|
- !ruby/object:Gem::Version
|
|
155
|
-
version: 3.
|
|
189
|
+
version: 3.8.0
|
|
156
190
|
- !ruby/object:Gem::Dependency
|
|
157
191
|
name: selenium-webdriver
|
|
158
192
|
requirement: !ruby/object:Gem::Requirement
|
|
159
193
|
requirements:
|
|
160
194
|
- - "~>"
|
|
161
195
|
- !ruby/object:Gem::Version
|
|
162
|
-
version: '4.
|
|
196
|
+
version: '4.18'
|
|
163
197
|
type: :development
|
|
164
198
|
prerelease: false
|
|
165
199
|
version_requirements: !ruby/object:Gem::Requirement
|
|
166
200
|
requirements:
|
|
167
201
|
- - "~>"
|
|
168
202
|
- !ruby/object:Gem::Version
|
|
169
|
-
version: '4.
|
|
203
|
+
version: '4.18'
|
|
170
204
|
- !ruby/object:Gem::Dependency
|
|
171
205
|
name: simplecov
|
|
172
206
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -181,20 +215,6 @@ dependencies:
|
|
|
181
215
|
- - "~>"
|
|
182
216
|
- !ruby/object:Gem::Version
|
|
183
217
|
version: '0.21'
|
|
184
|
-
- !ruby/object:Gem::Dependency
|
|
185
|
-
name: webdrivers
|
|
186
|
-
requirement: !ruby/object:Gem::Requirement
|
|
187
|
-
requirements:
|
|
188
|
-
- - "~>"
|
|
189
|
-
- !ruby/object:Gem::Version
|
|
190
|
-
version: '5.3'
|
|
191
|
-
type: :development
|
|
192
|
-
prerelease: false
|
|
193
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
194
|
-
requirements:
|
|
195
|
-
- - "~>"
|
|
196
|
-
- !ruby/object:Gem::Version
|
|
197
|
-
version: '5.3'
|
|
198
218
|
description: SitePrism gives you a simple, clean and semantic DSL for describing your
|
|
199
219
|
site. SitePrism implements the Page Object Model pattern on top of Capybara.
|
|
200
220
|
email:
|
|
@@ -237,14 +257,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
237
257
|
requirements:
|
|
238
258
|
- - ">="
|
|
239
259
|
- !ruby/object:Gem::Version
|
|
240
|
-
version: '
|
|
260
|
+
version: '3.1'
|
|
241
261
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
242
262
|
requirements:
|
|
243
263
|
- - ">="
|
|
244
264
|
- !ruby/object:Gem::Version
|
|
245
|
-
version: 3.2.
|
|
265
|
+
version: 3.2.8
|
|
246
266
|
requirements: []
|
|
247
|
-
rubygems_version:
|
|
267
|
+
rubygems_version: 4.0.6
|
|
248
268
|
specification_version: 4
|
|
249
269
|
summary: A Page Object Model DSL for Capybara
|
|
250
270
|
test_files: []
|