eyes_selenium 3.15.22 → 3.15.23
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
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 986dbce2e6280a576f7ab916cfa1bb5ffdd70f2ffbbc298733b0365d67e7b8e6
|
4
|
+
data.tar.gz: e0a78d9fb68f03c2810fd862bb5342d489f7571b16a538e236ce10f9ea71ab43
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: eaee95474c4f65ff04b697c98ce8b287af37c5f0c33cd79e3e109361f37cbee53bb8d100a6c8a3a09b957209b682778120ab5e87296d9b277e86b1a2f0e7d0a3
|
7
|
+
data.tar.gz: 9f42265a406214b02fa979bfb26f1e82dc058d067a988208ecb37bc4ff01e2bce604afe58872a9d102d655f561692bf34c1a79fad37fec9b6aeb963b6abe3396
|
@@ -19,7 +19,8 @@ module Applitools
|
|
19
19
|
end
|
20
20
|
|
21
21
|
attr_accessor :element, :frames, :region_to_check, :coordinate_type, :options, :ignored_regions,
|
22
|
-
:floating_regions, :frame_or_element, :regions
|
22
|
+
:floating_regions, :frame_or_element, :regions, :match_level, :layout_regions, :content_regions,
|
23
|
+
:strict_regions
|
23
24
|
|
24
25
|
private :frame_or_element, :frame_or_element=
|
25
26
|
|
@@ -144,6 +145,53 @@ module Applitools
|
|
144
145
|
self
|
145
146
|
end
|
146
147
|
|
148
|
+
def layout(*args)
|
149
|
+
return match_level(Applitools::MatchLevel::LAYOUT) if args.empty?
|
150
|
+
region = process_region(*args)
|
151
|
+
layout_regions << region
|
152
|
+
self
|
153
|
+
end
|
154
|
+
|
155
|
+
def content(*args)
|
156
|
+
return match_level(Applitools::MatchLevel::CONTENT) if args.empty?
|
157
|
+
region = process_region(*args)
|
158
|
+
content_regions << region
|
159
|
+
self
|
160
|
+
end
|
161
|
+
|
162
|
+
def strict(*args)
|
163
|
+
return match_level(Applitools::MatchLevel::STRICT) if args.empty?
|
164
|
+
region = process_region(*args)
|
165
|
+
strict_regions << region
|
166
|
+
self
|
167
|
+
end
|
168
|
+
|
169
|
+
def exact(*args)
|
170
|
+
return match_level(Applitools::MatchLevel::EXACT) if args.empty?
|
171
|
+
raise Applitools::EyesError('Target.exact() is supposed to be called without args!')
|
172
|
+
# region = process_region(args)
|
173
|
+
# exact_regions << region
|
174
|
+
# self
|
175
|
+
end
|
176
|
+
|
177
|
+
def process_region(*args)
|
178
|
+
r = args.first
|
179
|
+
case r
|
180
|
+
when Applitools::Region, ::Selenium::WebDriver::Element, Applitools::Selenium::Element
|
181
|
+
proc { r }
|
182
|
+
else
|
183
|
+
proc do |driver|
|
184
|
+
args_dup = args.dup
|
185
|
+
driver.find_element(args_dup.shift, args_dup.shift)
|
186
|
+
end
|
187
|
+
end
|
188
|
+
end
|
189
|
+
|
190
|
+
def match_level(*args)
|
191
|
+
value = args.shift
|
192
|
+
self
|
193
|
+
end
|
194
|
+
|
147
195
|
def fully(value = true)
|
148
196
|
options[:stitch_content] = value ? true : false
|
149
197
|
handle_frames
|
@@ -218,6 +266,9 @@ module Applitools
|
|
218
266
|
self.region_to_check = proc { Applitools::Region::EMPTY }
|
219
267
|
reset_ignore
|
220
268
|
reset_floating
|
269
|
+
reset_content_regions
|
270
|
+
reset_layout_regions
|
271
|
+
reset_strict_regions
|
221
272
|
options[:stitch_content] = false
|
222
273
|
options[:timeout] = nil
|
223
274
|
options[:trim] = false
|
@@ -231,6 +282,18 @@ module Applitools
|
|
231
282
|
self.floating_regions = []
|
232
283
|
end
|
233
284
|
|
285
|
+
def reset_layout_regions
|
286
|
+
self.layout_regions = []
|
287
|
+
end
|
288
|
+
|
289
|
+
def reset_content_regions
|
290
|
+
self.content_regions = []
|
291
|
+
end
|
292
|
+
|
293
|
+
def reset_strict_regions
|
294
|
+
self.strict_regions = []
|
295
|
+
end
|
296
|
+
|
234
297
|
def handle_frames
|
235
298
|
return unless frame_or_element
|
236
299
|
frames << frame_or_element
|
@@ -28,6 +28,21 @@ module Applitools
|
|
28
28
|
end
|
29
29
|
end
|
30
30
|
|
31
|
+
if target.respond_to? :layout_regions
|
32
|
+
@layout_regions = obtain_regions_coordinates(target.layout_regions, driver)
|
33
|
+
@need_convert_layout_regions_coordinates = true unless @layout_regions.empty?
|
34
|
+
end
|
35
|
+
|
36
|
+
if target.respond_to? :content_regions
|
37
|
+
@content_regions = obtain_regions_coordinates(target.content_regions, driver)
|
38
|
+
@need_convert_content_regions_coordinates = true unless @content_regions.empty?
|
39
|
+
end
|
40
|
+
|
41
|
+
if target.respond_to? :strict_regions
|
42
|
+
@strict_regions = obtain_regions_coordinates(target.strict_regions, driver)
|
43
|
+
@need_convert_strict_regions_coordinates = true unless @strict_regions.empty?
|
44
|
+
end
|
45
|
+
|
31
46
|
# # floating regions
|
32
47
|
return unless target.respond_to? :floating_regions
|
33
48
|
target.floating_regions.each do |r|
|
@@ -48,6 +63,21 @@ module Applitools
|
|
48
63
|
end
|
49
64
|
end
|
50
65
|
|
66
|
+
def obtain_regions_coordinates(regions, driver)
|
67
|
+
result = []
|
68
|
+
regions.each do |r|
|
69
|
+
case r
|
70
|
+
when Proc
|
71
|
+
region = r.call(driver)
|
72
|
+
region = selector_regions[target.regions[region]]
|
73
|
+
result << Applitools::Region.new(region['x'], region['y'], region['width'], region['height'])
|
74
|
+
when Applitools::Region
|
75
|
+
result << r
|
76
|
+
end
|
77
|
+
end
|
78
|
+
result
|
79
|
+
end
|
80
|
+
|
51
81
|
def convert_ignored_regions_coordinates
|
52
82
|
return unless @need_convert_ignored_regions_coordinates
|
53
83
|
self.ignored_regions = @ignored_regions.map(&:with_padding).map(&:to_hash)
|
@@ -60,6 +90,23 @@ module Applitools
|
|
60
90
|
@need_convert_floating_regions_coordinates = false
|
61
91
|
end
|
62
92
|
|
93
|
+
def convert_layout_regions_coordinates
|
94
|
+
return unless @need_convert_layout_regions_coordinates
|
95
|
+
self.layout_regions = @layout_regions
|
96
|
+
@need_convert_layout_regions_coordinates = false
|
97
|
+
end
|
98
|
+
|
99
|
+
def convert_strict_regions_coordinates
|
100
|
+
return unless @need_convert_strict_regions_coordinates
|
101
|
+
self.strict_regions = @strict_regions
|
102
|
+
@need_convert_strict_regions_coordinates = false
|
103
|
+
end
|
104
|
+
|
105
|
+
def convert_content_regions_coordinates
|
106
|
+
return unless @need_convert_content_regions_coordinates
|
107
|
+
self.content_regions = @content_regions
|
108
|
+
@need_convert_content_regions_coordinates = false
|
109
|
+
end
|
63
110
|
end
|
64
111
|
end
|
65
112
|
end
|
@@ -3,6 +3,7 @@ module Applitools
|
|
3
3
|
module Selenium
|
4
4
|
class VisualGridEyes
|
5
5
|
DOM_EXTRACTION_TIMEOUT = 300 #seconds or 5 minutes
|
6
|
+
USE_DEFAULT_MATCH_TIMEOUT = -1
|
6
7
|
extend Forwardable
|
7
8
|
|
8
9
|
def_delegators 'Applitools::EyesLogger', :logger, :log_handler, :log_handler=
|
@@ -131,7 +132,7 @@ module Applitools
|
|
131
132
|
# end.compact!
|
132
133
|
# end
|
133
134
|
result = []
|
134
|
-
|
135
|
+
collect_selenium_regions(target).each do |el, v|
|
135
136
|
if [::Selenium::WebDriver::Element, Applitools::Selenium::Element].include?(el.class)
|
136
137
|
xpath = driver.execute_script(Applitools::Selenium::Scripts::GET_ELEMENT_XPATH_JS, el)
|
137
138
|
web_element_region = Applitools::Selenium::WebElementRegion.new(xpath, v)
|
@@ -145,23 +146,25 @@ module Applitools
|
|
145
146
|
|
146
147
|
def collect_selenium_regions(target)
|
147
148
|
selenium_regions = {}
|
148
|
-
# ignore_regions = target.ignored_regions
|
149
|
-
# floating_regions = target.floating_regions
|
150
149
|
target_element = target.region_to_check
|
151
150
|
setup_size_mode(target_element)
|
152
|
-
# selenium_regions.map do |r|
|
153
|
-
# element_or_region(r)
|
154
|
-
# end
|
155
151
|
target.ignored_regions.each do |r|
|
156
152
|
selenium_regions[element_or_region(r)] = :ignore
|
157
153
|
end
|
158
154
|
target.floating_regions.each do |r|
|
159
155
|
selenium_regions[element_or_region(r)] = :floating
|
160
156
|
end
|
157
|
+
target.layout_regions.each do |r|
|
158
|
+
selenium_regions[element_or_region(r)] = :layout
|
159
|
+
end
|
160
|
+
target.strict_regions.each do |r|
|
161
|
+
selenium_regions[element_or_region(r)] = :strict
|
162
|
+
end
|
163
|
+
target.content_regions.each do |r|
|
164
|
+
selenium_regions[element_or_region(r)] = :content
|
165
|
+
end
|
161
166
|
selenium_regions[region_to_check] = :target if size_mod == 'selector'
|
162
167
|
|
163
|
-
# selenium_regions[:ignore] += [target.ignored_regions.map { |r| element_or_region(r) }].flatten.compact
|
164
|
-
# selenium_regions[:target] << region_to_check if size_mod == 'selector'
|
165
168
|
selenium_regions
|
166
169
|
end
|
167
170
|
|
data/lib/applitools/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: eyes_selenium
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.15.
|
4
|
+
version: 3.15.23
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Applitools Team
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-06-
|
11
|
+
date: 2019-06-10 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: eyes_core
|
@@ -16,14 +16,14 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - '='
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 3.15.
|
19
|
+
version: 3.15.23
|
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: 3.15.
|
26
|
+
version: 3.15.23
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: selenium-webdriver
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|