eyes_selenium 3.14.8 → 3.14.9

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: 4d2a02a97471ca711cc4cee80ff6d948dbdbba3629a32dbf7711a072c5ae650d
4
- data.tar.gz: e715d1aee3fbdd03f48a4caf5cf311d532b9d950f9a59dfbe5b467ff536b5a33
3
+ metadata.gz: d500101344559727659a517156d95e4653706a4de211db4d509d986aae06fde7
4
+ data.tar.gz: bd91da99dccd21c1519a9ce18bf00bc5761d90992e11aaefe539d16b144038d7
5
5
  SHA512:
6
- metadata.gz: 548088ae090ff0fb5999e4102e4188dee92a51f4c16d0fb9c035f230a665b0239e02fc2a88d28ce51139cac6f93efe859111c42b557e35b2e7172a349be79c61
7
- data.tar.gz: 706fa0ed4b57a1fd37a7405cb9a93959996c9ab48ba73a4151988727f9d48732eb7feb5e4ce720f29ab00310653b1ff2a6ada6a96ebbc207bed6d5f9a4718ac8
6
+ metadata.gz: 81577dcbe0e103115bf57fe76d5df2a466d072f71a5f8303f38dcf70ce9b1cc2dd2a570beca8b3ce9b7f3206a09ed18b9be9ad9ea2e2478ed82e54c72ba481ee
7
+ data.tar.gz: 87b4d229fb734f03896e716003a64f58355b9a24850fb85404d68f0f1c55aa2020e88d370bf032b220caecf1bbe0d723caae9789b2fd2ecf298ef0e6e4ac5a80
@@ -27,6 +27,8 @@ module Applitools::Selenium
27
27
 
28
28
  JS_GET_OVERFLOW = 'return arguments[0].style.overflow;'.freeze
29
29
  JS_SET_OVERFLOW_FORMATTED_STR = "arguments[0].style.overflow = '%s'".freeze
30
+ JS_SET_SCROLL_DATA_FORMATTED_STR = "arguments[0].setAttribute('data-applitools-scroll', '%s')".freeze
31
+ JS_SET_OVERFLOW_DATA_FORMATTED_STR = "arguments[0].setAttribute('data-applitools-original-overflow', '%s')".freeze
30
32
 
31
33
  TRACE_PREFIX = 'EyesWebElement'.freeze
32
34
 
@@ -127,6 +129,14 @@ module Applitools::Selenium
127
129
  driver.execute_script(JS_SET_OVERFLOW_FORMATTED_STR % overflow, self)
128
130
  end
129
131
 
132
+ def scroll_data_attribute=(value)
133
+ driver.execute_script(JS_SET_SCROLL_DATA_FORMATTED_STR % value, self)
134
+ end
135
+
136
+ def overflow_data_attribute=(value)
137
+ driver.execute_script(JS_SET_OVERFLOW_DATA_FORMATTED_STR % value, self)
138
+ end
139
+
130
140
  def computed_style(prop_style)
131
141
  driver.execute_script(JS_GET_COMPUTED_STYLE_FORMATTED_STR % prop_style, self).to_s
132
142
  end
@@ -98,7 +98,7 @@ module Applitools::Selenium
98
98
  attr_accessor :base_agent_id, :screenshot, :force_full_page_screenshot, :hide_scrollbars,
99
99
  :wait_before_screenshots, :debug_screenshots, :stitch_mode, :disable_horizontal_scrolling,
100
100
  :disable_vertical_scrolling, :explicit_entire_size, :debug_screenshot_provider, :stitching_overlap,
101
- :full_page_capture_algorithm_left_top_offset, :screenshot_type, :use_dom
101
+ :full_page_capture_algorithm_left_top_offset, :screenshot_type, :send_dom
102
102
  attr_reader :driver
103
103
 
104
104
  def_delegators 'Applitools::EyesLogger', :logger, :log_handler, :log_handler=
@@ -129,7 +129,7 @@ module Applitools::Selenium
129
129
  self.force_driver_resolution_as_viewport_size = false
130
130
  self.stitching_overlap = DEFAULT_STITCHING_OVERLAP
131
131
  self.full_page_capture_algorithm_left_top_offset = Applitools::Location::TOP_LEFT
132
- self.use_dom = false
132
+ self.send_dom = false
133
133
  self.prevent_dom_processing = false
134
134
  end
135
135
 
@@ -264,7 +264,11 @@ module Applitools::Selenium
264
264
  )
265
265
  end
266
266
 
267
- self.prevent_dom_processing = !((!target.options[:use_dom].nil? && target.options[:use_dom]) || use_dom)
267
+ # self.prevent_dom_processing = !((!target.options[:send_dom].nil? && target.options[:send_dom]) ||
268
+ # send_dom || stitch_mode == Applitools::STITCH_MODE[:css])
269
+
270
+ self.prevent_dom_processing = !((!target.options[:send_dom].nil? && target.options[:send_dom]) ||
271
+ send_dom)
268
272
 
269
273
  check_in_frame target_frames: target_to_check.frames do
270
274
  begin
@@ -276,6 +280,7 @@ module Applitools::Selenium
276
280
  unless force_full_page_screenshot
277
281
  region_visibility_strategy.move_to_region original_position_provider,
278
282
  Applitools::Location.new(eyes_element.location.x.to_i, eyes_element.location.y.to_i)
283
+ driver.find_element(:css, 'html').scroll_data_attribute = true
279
284
  end
280
285
 
281
286
  region_provider = Applitools::Selenium::RegionProvider.new(driver, region_for_element(eyes_element))
@@ -299,6 +304,8 @@ module Applitools::Selenium
299
304
  if eyes_element.is_a? Applitools::Selenium::Element
300
305
  original_overflow = eyes_element.overflow
301
306
  eyes_element.overflow = 'hidden'
307
+ eyes_element.scroll_data_attribute = true
308
+ eyes_element.overflow_data_attribute = original_overflow
302
309
  self.position_provider = Applitools::Selenium::CssTranslateElementPositionProvider.new(
303
310
  driver,
304
311
  eyes_element
@@ -524,6 +531,7 @@ module Applitools::Selenium
524
531
  if hide_scrollbars
525
532
  begin
526
533
  original_overflow = Applitools::Utils::EyesSeleniumUtils.hide_scrollbars driver
534
+ driver.find_element(:css, 'html').overflow_data_attribute = original_overflow
527
535
  rescue Applitools::EyesDriverOperationException => e
528
536
  logger.warn "Failed to hide scrollbars! Error: #{e.message}"
529
537
  end
@@ -163,6 +163,16 @@ module Applitools
163
163
  self
164
164
  end
165
165
 
166
+ def send_dom(value = true)
167
+ options[:send_dom] = value ? true : false
168
+ self
169
+ end
170
+
171
+ def use_dom(value = true)
172
+ options[:use_dom] = value ? true : false
173
+ self
174
+ end
175
+
166
176
  def finalize
167
177
  return self unless frame_or_element
168
178
  region = frame_or_element
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: false
2
2
 
3
3
  module Applitools
4
- VERSION = '3.14.8'.freeze
4
+ VERSION = '3.14.9'.freeze
5
5
  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.14.8
4
+ version: 3.14.9
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-03-07 00:00:00.000000000 Z
11
+ date: 2019-03-09 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.14.8
19
+ version: 3.14.9
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.14.8
26
+ version: 3.14.9
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: selenium-webdriver
29
29
  requirement: !ruby/object:Gem::Requirement