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: ae6592033273af368726fae293e5792d76f0d0a4
4
- data.tar.gz: 15f47a14d8c29633f9b51ad735ac974c442521b4
3
+ metadata.gz: 48fa942ab484ac166a79b5c113e8abc724898dc7
4
+ data.tar.gz: e4706b111471ff17a6b4b9814ea028fde0102a3f
5
5
  SHA512:
6
- metadata.gz: e60dbd1e7622611dadec8b9d810f318209c4eff8aee4d305dd91af9bf72af65c902626515920113e4e2f48e09bd40545067d94b923a77f6aec5f855d343976a9
7
- data.tar.gz: 3e49663198b2fe8655240bd8d36e5c93a1a36a5952cd055e4f3aaac6e32919e589286cbe40283ebd4a4a4aed846ad83f819d7818414422adfcb6af4f2ad2b7ee
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
- debug_screenshot: debug_screenshot, name_enumerator: screenshot_name_enumerator
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, :name_enumerator
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.debug_screenshot = options[:debug_screenshot]
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
- if debug_screenshot
28
- screenshot = driver.screenshot_as(:png) do |raw_screenshot|
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
- ChunkyPNG::Image.from_string(screenshot).save(name_enumerator.next)
37
+ def save_debug_screenshot(screenshot, suffix)
38
+ debug_screenshot_provider.save(screenshot, suffix || '')
44
39
  end
45
40
  end
46
41
  end
@@ -1,3 +1,3 @@
1
1
  module Applitools
2
- VERSION = '3.11.2'.freeze
2
+ VERSION = '3.11.3'.freeze
3
3
  end
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.2
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-06 00:00:00.000000000 Z
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.2
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.2
26
+ version: 3.11.3
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: selenium-webdriver
29
29
  requirement: !ruby/object:Gem::Requirement