eyes_selenium 3.11.2 → 3.11.3

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
  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