eyes_selenium 3.11.2 → 3.11.3
Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 48fa942ab484ac166a79b5c113e8abc724898dc7
|
4
|
+
data.tar.gz: e4706b111471ff17a6b4b9814ea028fde0102a3f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c5e081ea883a93be0153d8cdb74dbb088d8bab32410884329488f547250b64ea9edd507e10ee8e4b655d4e87ed2ccfc9ee400b3fd46f4d3df10440af9c92ee3d
|
7
|
+
data.tar.gz: 31f787b185858b3a6dad0038187cfc1b1a264b4b4c12ee4c5d09806bc149e21f4f7b15756891dd44a864ca11c8144f7662aca89cce02e7e5e0e3ac1f938da17d
|
@@ -75,7 +75,7 @@ module Applitools::Selenium
|
|
75
75
|
|
76
76
|
attr_accessor :base_agent_id, :screenshot, :force_full_page_screenshot, :hide_scrollbars,
|
77
77
|
:wait_before_screenshots, :debug_screenshot, :stitch_mode, :disable_horizontal_scrolling,
|
78
|
-
:disable_vertical_scrolling, :explicit_entire_size
|
78
|
+
:disable_vertical_scrolling, :explicit_entire_size, :debug_screenshot_provider
|
79
79
|
attr_reader :driver
|
80
80
|
|
81
81
|
def_delegators 'Applitools::EyesLogger', :logger, :log_handler, :log_handler=
|
@@ -97,6 +97,9 @@ module Applitools::Selenium
|
|
97
97
|
self.wait_before_screenshots = DEFAULT_WAIT_BEFORE_SCREENSHOTS
|
98
98
|
self.region_visibility_strategy = MoveToRegionVisibilityStrategy.new
|
99
99
|
self.debug_screenshot = false
|
100
|
+
self.debug_screenshot_provider = Applitools::DebugScreenshotProvider.new
|
101
|
+
.tag_access { tag_for_debug }
|
102
|
+
.debug_flag_access { debug_screenshot }
|
100
103
|
self.disable_horizontal_scrolling = false
|
101
104
|
self.disable_vertical_scrolling = false
|
102
105
|
self.explicit_entire_size = nil
|
@@ -388,7 +391,6 @@ module Applitools::Selenium
|
|
388
391
|
options = { timeout: USE_DEFAULT_MATCH_TIMEOUT, tag: nil }.merge! Applitools::Utils.extract_options!(args)
|
389
392
|
target = Applitools::Selenium::Target.new.region(*args).timeout(options[:match_timeout])
|
390
393
|
target.fully if options[:stitch_content]
|
391
|
-
self.screenshot_name_enumerator = nil
|
392
394
|
check(options[:tag], target)
|
393
395
|
end
|
394
396
|
|
@@ -477,7 +479,7 @@ module Applitools::Selenium
|
|
477
479
|
|
478
480
|
def capture_screenshot
|
479
481
|
image_provider = Applitools::Selenium::TakesScreenshotImageProvider.new driver,
|
480
|
-
|
482
|
+
debug_screenshot_provider: debug_screenshot_provider
|
481
483
|
logger.info 'Getting screenshot (capture_screenshot() has been invoked)'
|
482
484
|
|
483
485
|
update_scaling_params
|
@@ -493,7 +495,9 @@ module Applitools::Selenium
|
|
493
495
|
begin
|
494
496
|
if check_frame_or_element
|
495
497
|
logger.info 'Check frame/element requested'
|
496
|
-
algo = Applitools::Selenium::FullPageCaptureAlgorithm.new
|
498
|
+
algo = Applitools::Selenium::FullPageCaptureAlgorithm.new(
|
499
|
+
debug_screenshot_provider: debug_screenshot_provider
|
500
|
+
)
|
497
501
|
|
498
502
|
entire_frame_or_element = algo.get_stitched_region(
|
499
503
|
image_provider: image_provider,
|
@@ -515,7 +519,9 @@ module Applitools::Selenium
|
|
515
519
|
logger.info 'Full page screenshot requested'
|
516
520
|
original_frame = driver.frame_chain
|
517
521
|
driver.switch_to.default_content
|
518
|
-
algo = Applitools::Selenium::FullPageCaptureAlgorithm.new
|
522
|
+
algo = Applitools::Selenium::FullPageCaptureAlgorithm.new(
|
523
|
+
debug_screenshot_provider: debug_screenshot_provider
|
524
|
+
)
|
519
525
|
region_provider = Object.new
|
520
526
|
region_provider.instance_eval do
|
521
527
|
def region
|
@@ -696,6 +702,8 @@ module Applitools::Selenium
|
|
696
702
|
add_mouse_trigger_base(mouse_action, control, cursor)
|
697
703
|
end
|
698
704
|
|
705
|
+
public :add_text_trigger, :add_mouse_trigger, :add_mouse_trigger_by_region_and_location
|
706
|
+
|
699
707
|
protected
|
700
708
|
|
701
709
|
def check_current_frame(match_timeout, tag)
|
@@ -957,23 +965,6 @@ module Applitools::Selenium
|
|
957
965
|
end
|
958
966
|
end
|
959
967
|
|
960
|
-
def screenshot_name_enumerator
|
961
|
-
@name_enumerator ||= Enumerator.new do |y|
|
962
|
-
counter = 1
|
963
|
-
loop do
|
964
|
-
y << "#{tag_for_debug.gsub(/\s+/, '_')}__#{Time.now.strftime('%Y_%m_%d_%H_%M')}__#{counter}.png"
|
965
|
-
counter += 1
|
966
|
-
end
|
967
|
-
end
|
968
|
-
end
|
969
|
-
|
970
|
-
# Resets screenshot_names sequence to initial state.
|
971
|
-
#
|
972
|
-
# @param [Boolean] value should be false or nil to reset the sequence. Takes no effect if +true+ passed
|
973
|
-
def screenshot_name_enumerator=(value)
|
974
|
-
@name_enumerator = nil unless value
|
975
|
-
end
|
976
|
-
|
977
968
|
def inferred_environment
|
978
969
|
return @inferred_environment unless @inferred_environment.nil?
|
979
970
|
|
@@ -4,9 +4,16 @@ module Applitools::Selenium
|
|
4
4
|
extend Forwardable
|
5
5
|
def_delegators 'Applitools::EyesLogger', :logger, :log_handler, :log_handler=
|
6
6
|
|
7
|
+
attr_reader :debug_screenshot_provider
|
8
|
+
|
7
9
|
MAX_SCROLL_BAR_SIZE = 50
|
8
10
|
MIN_SCREENSHOT_PART_HEIGHT = 10
|
9
11
|
|
12
|
+
def initialize(options = {})
|
13
|
+
@debug_screenshot_provider = options[:debug_screenshot_provider] ||
|
14
|
+
Applitools::DebugScreenshotProvider.new.tag_access { '' }.debug_flag_access { false }
|
15
|
+
end
|
16
|
+
|
10
17
|
# Returns the stitched image.
|
11
18
|
#
|
12
19
|
# @param [Hash] options The options.
|
@@ -60,18 +67,26 @@ module Applitools::Selenium
|
|
60
67
|
|
61
68
|
logger.info 'Getting top/left image...'
|
62
69
|
image = image_provider.take_screenshot
|
70
|
+
debug_screenshot_provider.save(image, 'left_top_original')
|
63
71
|
image = scale_provider.scale_image(image) if scale_provider
|
72
|
+
debug_screenshot_provider.save(image, 'left_top_original_scaled')
|
64
73
|
image = cut_provider.cut(image) if cut_provider
|
74
|
+
debug_screenshot_provider.save(image, 'left_top_original_cutted')
|
65
75
|
logger.info 'Done! Creating screenshot object...'
|
66
76
|
screenshot = eyes_screenshot_factory.call(image)
|
67
77
|
|
68
78
|
if region_provider.coordinate_type
|
69
79
|
left_top_image = screenshot.sub_screenshot(region_provider.region, region_provider.coordinate_type)
|
80
|
+
debug_screenshot_provider.save_subscreenshot(left_top_image, region_provider.region)
|
70
81
|
else
|
71
82
|
left_top_image = screenshot.sub_screenshot(
|
72
83
|
Applitools::Region.from_location_size(Applitools::Location.new(0, 0), entire_size),
|
73
84
|
Applitools::EyesScreenshot::COORDINATE_TYPES[:context_relative]
|
74
85
|
)
|
86
|
+
debug_screenshot_provider.save_subscreenshot(
|
87
|
+
left_top_image,
|
88
|
+
Applitools::Region.from_location_size(Applitools::Location.new(0, 0), entire_size)
|
89
|
+
)
|
75
90
|
end
|
76
91
|
|
77
92
|
image = left_top_image.image
|
@@ -122,9 +137,11 @@ module Applitools::Selenium
|
|
122
137
|
logger.info "Set position to #{current_position}"
|
123
138
|
logger.info 'Getting image...'
|
124
139
|
|
125
|
-
part_image = image_provider.take_screenshot
|
140
|
+
part_image = image_provider.take_screenshot(debug_suffix: "scrolled_(#{current_position})")
|
126
141
|
part_image = scale_provider.scale_image part_image if scale_provider
|
142
|
+
debug_screenshot_provider.save(part_image, 'scaled')
|
127
143
|
part_image = cut_provider.cut part_image if cut_provider
|
144
|
+
debug_screenshot_provider.save(part_image, 'cutted')
|
128
145
|
|
129
146
|
logger.info 'Done!'
|
130
147
|
begin
|
@@ -133,6 +150,7 @@ module Applitools::Selenium
|
|
133
150
|
)
|
134
151
|
a_screenshot = eyes_screenshot_factory.call(part_image).sub_screenshot(region_to_check,
|
135
152
|
Applitools::EyesScreenshot::COORDINATE_TYPES[:context_relative], false)
|
153
|
+
debug_screenshot_provider.save_subscreenshot(a_screenshot, region_to_check)
|
136
154
|
rescue Applitools::OutOfBoundsException => e
|
137
155
|
logger.error e.message
|
138
156
|
break
|
@@ -168,11 +186,13 @@ module Applitools::Selenium
|
|
168
186
|
stitched_image.crop!(0, 0,
|
169
187
|
[actual_image_width, stitched_image.width].min,
|
170
188
|
[actual_image_height, stitched_image.height].min)
|
189
|
+
debug_screenshot_provider.save(stitched_image, 'trimmed')
|
171
190
|
logger.info 'Done!'
|
172
191
|
end
|
173
192
|
|
174
193
|
logger.info 'Converting to screenshot...'
|
175
194
|
result_screenshot = Applitools::Screenshot.from_any_image(stitched_image)
|
195
|
+
debug_screenshot_provider.save(result_screenshot, 'full_page')
|
176
196
|
logger.info 'Done converting!'
|
177
197
|
result_screenshot
|
178
198
|
end
|
@@ -4,7 +4,7 @@ module Applitools::Selenium
|
|
4
4
|
extend Forwardable
|
5
5
|
def_delegators 'Applitools::EyesLogger', :logger, :log_handler, :log_handler=
|
6
6
|
|
7
|
-
attr_accessor :driver, :
|
7
|
+
attr_accessor :driver, :debug_screenshot_provider
|
8
8
|
|
9
9
|
# Initialize an Applitools::Selenium::TakesScreenshotImageProvider.
|
10
10
|
#
|
@@ -15,21 +15,16 @@ module Applitools::Selenium
|
|
15
15
|
def initialize(driver, options = {})
|
16
16
|
self.driver = driver
|
17
17
|
options = { debug_screenshot: false }.merge! options
|
18
|
-
self.
|
19
|
-
self.name_enumerator = options[:name_enumerator]
|
18
|
+
self.debug_screenshot_provider = options[:debug_screenshot_provider]
|
20
19
|
end
|
21
20
|
|
22
21
|
# Takes a screenshot.
|
23
22
|
#
|
24
23
|
# @return [Applitools::Screenshot::Datastream] The screenshot.
|
25
|
-
def take_screenshot
|
24
|
+
def take_screenshot(options = {})
|
26
25
|
logger.info 'Getting screenshot...'
|
27
|
-
|
28
|
-
|
29
|
-
save_debug_screenshot(raw_screenshot)
|
30
|
-
end
|
31
|
-
else
|
32
|
-
screenshot = driver.screenshot_as(:png)
|
26
|
+
screenshot = driver.screenshot_as(:png) do |raw_screenshot|
|
27
|
+
save_debug_screenshot(raw_screenshot, options[:debug_suffix])
|
33
28
|
end
|
34
29
|
logger.info 'Done getting screenshot! Creating Applitools::Screenshot...'
|
35
30
|
Applitools::Screenshot.from_datastream screenshot
|
@@ -39,8 +34,8 @@ module Applitools::Selenium
|
|
39
34
|
|
40
35
|
attr_accessor :debug_screenshot
|
41
36
|
|
42
|
-
def save_debug_screenshot(screenshot)
|
43
|
-
|
37
|
+
def save_debug_screenshot(screenshot, suffix)
|
38
|
+
debug_screenshot_provider.save(screenshot, suffix || '')
|
44
39
|
end
|
45
40
|
end
|
46
41
|
end
|
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.11.
|
4
|
+
version: 3.11.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Applitools Team
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-08-
|
11
|
+
date: 2017-08-13 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.11.
|
19
|
+
version: 3.11.3
|
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.11.
|
26
|
+
version: 3.11.3
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: selenium-webdriver
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|