eyes_selenium 3.18.4 → 4.6.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.
Files changed (27) hide show
  1. checksums.yaml +5 -5
  2. data/lib/applitools/selenium/browser_types.rb +12 -10
  3. data/lib/applitools/selenium/browsers_info.rb +8 -0
  4. data/lib/applitools/selenium/concerns/selenium_eyes.rb +2 -6
  5. data/lib/applitools/selenium/configuration.rb +11 -2
  6. data/lib/applitools/selenium/devices.rb +133 -24
  7. data/lib/applitools/selenium/driver.rb +21 -1
  8. data/lib/applitools/selenium/eyes.rb +2 -2
  9. data/lib/applitools/selenium/full_page_capture_algorithm.rb +1 -1
  10. data/lib/applitools/selenium/scripts/templates.rb +11 -11
  11. data/lib/applitools/selenium/selenium_eyes.rb +54 -49
  12. data/lib/applitools/selenium/target.rb +174 -134
  13. data/lib/applitools/selenium/visual_grid/android_device_info.rb +65 -0
  14. data/lib/applitools/selenium/visual_grid/android_device_name.rb +45 -0
  15. data/lib/applitools/selenium/visual_grid/chrome_emulation_info.rb +4 -0
  16. data/lib/applitools/selenium/visual_grid/desktop_browser_info.rb +6 -0
  17. data/lib/applitools/selenium/visual_grid/dom_snapshot_script.rb +2 -1
  18. data/lib/applitools/selenium/visual_grid/ios_device_info.rb +12 -0
  19. data/lib/applitools/selenium/visual_grid/ios_device_name.rb +17 -1
  20. data/lib/applitools/selenium/visual_grid/thread_pool.rb +2 -1
  21. data/lib/applitools/selenium/visual_grid/vg_resource.rb +7 -6
  22. data/lib/applitools/selenium/visual_grid/visual_grid_eyes.rb +108 -56
  23. data/lib/applitools/selenium/visual_grid/visual_grid_runner.rb +4 -0
  24. data/lib/applitools/version.rb +4 -1
  25. data/lib/eyes_selenium.rb +17 -0
  26. metadata +9 -23
  27. data/lib/applitools/selenium/scripts/process_page_and_poll.rb +0 -17
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: add9ab19983a8d0449be20f28a07b8a22b8b106a
4
- data.tar.gz: 1a1c144870e1f7c9c73c63364cf302edbd9d1dcc
2
+ SHA256:
3
+ metadata.gz: 569cec349c48466c12fec616dcf7ee0519b32f9bc94b671ad5238b0d21e3df42
4
+ data.tar.gz: 2dd45a62281bbe48aa746fdc1a7a82b7a8a8eca6e33c2a3c2faad1d1c901a7e5
5
5
  SHA512:
6
- metadata.gz: 446c252c892baf365cc228ae32261ebd67d6c0ca1af31e7c7d61a784c7f736d92b6cb268ae9f9802af0989f7f1c03aa644f00f9f5d17a839f5a151cd75c64f09
7
- data.tar.gz: a952962907a6045f27e39e09821800f8c88b3973481ef7e71ffb20fdc8f8495d9857a00e7c188693d79f0f3d0645cb07996f44920af12102242751e6dce086a7
6
+ metadata.gz: c61cd245cefc145d7db8016c0cf81cd2a85c1d0bf3dca3bb5718063efcd927750dfe632cccfe5271ccb586b30d6c143be7b8495418341cc9970bffb98bf5c59e
7
+ data.tar.gz: 0ea56d6dac57d740df69252f038e81fa37bacb9cf9a4947c0aa9c0773cc10621d77ceedb9105e0b499be951c5adf163bdcc63dc87ee567eb1333031c88d2fb29
@@ -12,21 +12,22 @@ module BrowserTypes
12
12
  end
13
13
  module BrowserType
14
14
  extend self
15
- CHROME = :'chrome-0'
16
- CHROME_ONE_VERSION_BACK = :'chrome-1'
17
- CHROME_TWO_VERSIONS_BACK = :'chrome-2'
15
+ CHROME = :'chrome'
16
+ CHROME_ONE_VERSION_BACK = :'chrome-one-version-back'
17
+ CHROME_TWO_VERSIONS_BACK = :'chrome-two-versions-back'
18
18
 
19
- FIREFOX = :'firefox-0'
20
- FIREFOX_ONE_VERSION_BACK = :'firefox-1'
21
- FIREFOX_TWO_VERSIONS_BACK = :'firefox-2'
19
+ FIREFOX = :'firefox'
20
+ FIREFOX_ONE_VERSION_BACK = :'firefox-one-version-back'
21
+ FIREFOX_TWO_VERSIONS_BACK = :'firefox-two-versions-back'
22
22
 
23
- SAFARI = :'safari-0'
24
- SAFARI_ONE_VERSION_BACK = :'safari-1'
25
- SAFARI_TWO_VERSIONS_BACK = :'safari-2'
23
+ SAFARI = :'safari'
24
+ SAFARI_ONE_VERSION_BACK = :'safari-one-version-back'
25
+ SAFARI_TWO_VERSIONS_BACK = :'safari-two-versions-back'
26
26
  IOS_SAFARI = :safari
27
27
 
28
28
  EDGE_CHROMIUM = :'edgechromium'
29
- EDGE_CHROMIUM_ONE_VERSION_BACK = :'edgechromium-1'
29
+ EDGE_CHROMIUM_ONE_VERSION_BACK = :'edgechromium-one-version-back'
30
+ EDGE_CHROMIUM_TWO_VERSIONS_BACK = :'edgechromium-two-versions-back'
30
31
 
31
32
  IE_11 = :ie
32
33
  EDGE_LEGACY = :edgelegacy
@@ -65,6 +66,7 @@ module BrowserType
65
66
  IE_10,
66
67
  EDGE_CHROMIUM,
67
68
  EDGE_CHROMIUM_ONE_VERSION_BACK,
69
+ EDGE_CHROMIUM_TWO_VERSIONS_BACK,
68
70
  IOS_SAFARI
69
71
  ]
70
72
  end
@@ -21,6 +21,14 @@ module Applitools
21
21
  end
22
22
  yield(default)
23
23
  end
24
+
25
+ def to_hash
26
+ return nil if empty?
27
+ map(&:to_hash)
28
+ # require 'pry'
29
+ # binding.pry
30
+ end
31
+
24
32
  end
25
33
  end
26
34
  end
@@ -50,12 +50,8 @@ module Applitools
50
50
  fully = args.select { |a| a.is_a?(TrueClass) || a.is_a?(FalseClass) }.first
51
51
  target = Applitools::Selenium::Target.window.tap do |t|
52
52
  t.timeout(match_timeout || USE_DEFAULT_MATCH_TIMEOUT)
53
- if is_a?(Applitools::Selenium::VisualGridEyes)
54
- t.fully(true)
55
- else
56
- t.fully(force_full_page_screenshot)
57
- end
58
- t.fully(fully) unless fully.nil?
53
+ # fully = force_full_page_screenshot if fully.nil?
54
+ t.fully(fully) if !fully.nil?
59
55
  end
60
56
  check(tag, target)
61
57
  end
@@ -8,9 +8,9 @@ module Applitools
8
8
  class Configuration < Applitools::EyesBaseConfiguration
9
9
  DEFAULT_CONFIG = proc do
10
10
  {
11
- force_full_page_screenshot: false,
11
+ # force_full_page_screenshot: false,
12
12
  wait_before_screenshots: 0.1,
13
- stitch_mode: Applitools::Selenium::StitchModes::CSS,
13
+ # stitch_mode: Applitools::Selenium::StitchModes::CSS,
14
14
  hide_scrollbars: true,
15
15
  hide_caret: false,
16
16
  browsers_info: Applitools::Selenium::BrowsersInfo.new,
@@ -26,6 +26,7 @@ module Applitools
26
26
 
27
27
  boolean_field :force_full_page_screenshot
28
28
  int_field :wait_before_screenshots
29
+ int_field :wait_before_capture
29
30
  enum_field :stitch_mode, Applitools::Selenium::StitchModes.enum_values
30
31
  boolean_field :hide_scrollbars
31
32
  boolean_field :hide_caret
@@ -84,6 +85,14 @@ module Applitools
84
85
  add_browser emu
85
86
  end
86
87
 
88
+ def add_mobile_device(mobile_device_info)
89
+ add_mobile_devices(mobile_device_info)
90
+ end
91
+
92
+ def add_mobile_devices(mobile_device_infos)
93
+ add_browsers(mobile_device_infos)
94
+ end
95
+
87
96
  def viewport_size
88
97
  user_defined_vp = super
89
98
  user_defined_vp = nil if user_defined_vp.respond_to?(:square) && user_defined_vp.square == 0
@@ -1,45 +1,154 @@
1
1
  # frozen_string_literal: false
2
2
  module Devices
3
3
  extend self
4
+ BlackberryPlayBook = 'Blackberry PlayBook'.freeze
5
+ BlackBerryZ30 = 'BlackBerry Z30'.freeze
6
+ GalaxyA5 = 'Galaxy A5'.freeze
7
+ GalaxyNote10 = 'Galaxy Note 10'.freeze
8
+ GalaxyNote10Plus = 'Galaxy Note 10 Plus'.freeze
9
+ GalaxyNote2 = 'Galaxy Note 2'.freeze
10
+ GalaxyNote3 = 'Galaxy Note 3'.freeze
11
+ GalaxyNote4 = 'Galaxy Note 4'.freeze
12
+ # GalaxyNote8 = 'Galaxy Note 8'.freeze
13
+ GalaxyNote9 = 'Galaxy Note 9'.freeze
14
+ GalaxyS3 = 'Galaxy S3'.freeze
15
+ GalaxyS5 = 'Galaxy S5'.freeze
16
+ # GalaxyS8 = 'Galaxy S8'.freeze
17
+ # GalaxyS8Plus = 'Galaxy S8 Plus'.freeze
18
+ GalaxyS9 = 'Galaxy S9'.freeze
19
+ GalaxyS9Plus = 'Galaxy S9 Plus'.freeze
20
+ GalaxyS10 = 'Galaxy S10'.freeze
21
+ GalaxyS10Plus = 'Galaxy S10 Plus'.freeze
22
+ GalaxyS20 = 'Galaxy S20'.freeze
23
+ IPad = 'iPad'.freeze
24
+ IPad6thGen = 'iPad 6th Gen'.freeze
25
+ IPad7thGen = 'iPad 7th Gen'.freeze
26
+ IPadAir2 = 'iPad Air 2'.freeze
27
+ IPadMini = 'iPad Mini'.freeze
28
+ IPadPro = 'iPad Pro'.freeze
29
+ IPhone11 = 'iPhone 11'.freeze
30
+ IPhone11Pro = 'iPhone 11 Pro'.freeze
31
+ IPhone11ProMax = 'iPhone 11 Pro Max'.freeze
4
32
  IPhone4 = 'iPhone 4'.freeze
5
33
  IPhone5SE = 'iPhone 5/SE'.freeze
6
34
  IPhone678 = 'iPhone 6/7/8'.freeze
7
35
  IPhone678Plus = 'iPhone 6/7/8 Plus'.freeze
8
36
  IPhoneX = 'iPhone X'.freeze
9
- IPad = 'iPad'.freeze
10
- IPadPro = 'iPad Pro'.freeze
11
- BlackBerryZ30 = 'BlackBerry Z30'.freeze
37
+ IPhoneXR = 'iPhone XR'.freeze
38
+ IPhoneXS = 'iPhone XS'.freeze
39
+ IPhoneXSMax = 'iPhone XS Max'.freeze
40
+ IPhone14 = 'iPhone 14'.freeze
41
+ IPhone14ProMax = 'iPhone 14 Pro Max'.freeze
42
+ KindleFireHDX = 'Kindle Fire HDX'.freeze
43
+ LaptopWithHIDPIScreen = 'Laptop with HiDPI screen'.freeze
44
+ LaptopWithMDPIScreen = 'Laptop with MDPI screen'.freeze
45
+ LaptopWithTouch = 'Laptop with touch'.freeze
46
+ LGG6 = 'LG G6'.freeze
47
+ LGOptimusL70 = 'LG Optimus L70'.freeze
48
+ MicrosoftLumia550 = 'Microsoft Lumia 550'.freeze
49
+ MicrosoftLumia950 = 'Microsoft Lumia 950'.freeze
50
+ Nexus10 = 'Nexus 10'.freeze
12
51
  Nexus4 = 'Nexus 4'.freeze
13
52
  Nexus5 = 'Nexus 5'.freeze
14
53
  Nexus5X = 'Nexus 5X'.freeze
15
54
  Nexus6 = 'Nexus 6'.freeze
16
55
  Nexus6P = 'Nexus 6P'.freeze
56
+ Nexus7 = 'Nexus 7'.freeze
57
+
58
+ NokiaLumia520 = 'Nokia Lumia 520'.freeze
59
+ NokiaN9 = 'Nokia N9'.freeze
60
+ OnePlus7T = 'OnePlus 7T'.freeze
61
+ OnePlus7TPro = 'OnePlus 7T Pro'.freeze
62
+ # OnePlus8 = 'OnePlus 8'.freeze
63
+ # OnePlus8Pro = 'OnePlus 8 Pro'.freeze
17
64
  Pixel2 = 'Pixel 2'.freeze
18
65
  Pixel2XL = 'Pixel 2 XL'.freeze
19
- LGOptimusL70 = 'LG Optimus L70'.freeze
20
- NokiaN9 = 'Nokia N9'.freeze
21
- NokiaLumia520 = 'Nokia Lumia 520'.freeze
22
- MicrosoftLumia550 = 'Microsoft Lumia 550'.freeze
23
- MicrosoftLumia950 = 'Microsoft Lumia 950'.freeze
24
- GalaxyS3 = 'Galaxy S III'.freeze
25
- GalaxyS5 = 'Galaxy S5'.freeze
26
- KindleFireHDX = 'Kindle Fire HDX'.freeze
27
- IPadMini = 'iPad Mini'.freeze
28
- BlackberryPlayBook = 'Blackberry PlayBook'.freeze
29
- Nexus10 = 'Nexus 10'.freeze
30
- Nexus7 = 'Nexus 7'.freeze
31
- GalaxyNote3 = 'Galaxy Note 3'.freeze
32
- GalaxyNote2 = 'Galaxy Note II'.freeze
33
- LaptopWithTouch = 'Laptop with touch'.freeze
34
- LaptopWithHDPIScreen = 'Laptop with HiDPI screen'.freeze
35
- LaptopWithMDPIScreen = 'Laptop with MDPI screen'.freeze
66
+ Pixel3 = 'Pixel 3'.freeze
67
+ Pixel3XL = 'Pixel 3 XL'.freeze
68
+ Pixel4 = 'Pixel 4'.freeze
69
+ Pixel4XL = 'Pixel 4 XL'.freeze
70
+ Pixel5 = 'Pixel 5'.freeze
71
+ Pixel6 = 'Pixel 6'.freeze
72
+ XiaomiRedmiNote11 = 'Xiaomi Redmi Note 11'.freeze
73
+ XiaomiRedmiNote11Pro = 'Xiaomi Redmi Note 11 Pro'.freeze
74
+ GalaxyS22 = 'Galaxy S22'.freeze
75
+ GalaxyS22Plus = 'Galaxy S22 Plus'.freeze
76
+ GalaxyTabS7 = 'Galaxy Tab S7'.freeze
77
+ GalaxyTabS8 = 'Galaxy Tab S8'.freeze
36
78
 
37
79
  def enum_values
38
80
  [
39
- IPhone4, IPhone5SE, IPhone678, IPhone678Plus, IPhoneX, IPad, IPadPro, BlackBerryZ30, Nexus4, Nexus5, Nexus5X,
40
- Nexus6, Nexus6P, Pixel2, Pixel2XL, LGOptimusL70, NokiaN9, NokiaLumia520, MicrosoftLumia550, MicrosoftLumia950,
41
- GalaxyS3, GalaxyS5, KindleFireHDX, IPadMini, BlackberryPlayBook, Nexus10, Nexus7, GalaxyNote3, GalaxyNote2,
42
- LaptopWithTouch, LaptopWithHDPIScreen, LaptopWithMDPIScreen
81
+ BlackberryPlayBook,
82
+ BlackBerryZ30,
83
+ GalaxyA5,
84
+ GalaxyNote10,
85
+ GalaxyNote10Plus,
86
+ GalaxyNote2,
87
+ GalaxyNote3,
88
+ GalaxyNote4,
89
+ # GalaxyNote8,
90
+ GalaxyNote9,
91
+ GalaxyS3,
92
+ GalaxyS5,
93
+ # GalaxyS8,
94
+ # GalaxyS8Plus,
95
+ GalaxyS9,
96
+ GalaxyS9Plus,
97
+ GalaxyS10,
98
+ GalaxyS10Plus,
99
+ GalaxyS20,
100
+ IPad,
101
+ IPad6thGen,
102
+ IPad7thGen,
103
+ IPadAir2,
104
+ IPadMini,
105
+ IPadPro,
106
+ IPhone11,
107
+ IPhone11Pro,
108
+ IPhone11ProMax,
109
+ IPhone4,
110
+ IPhone5SE,
111
+ IPhone678,
112
+ IPhone678Plus,
113
+ IPhoneX,
114
+ IPhoneXR,
115
+ IPhoneXS,
116
+ IPhoneXSMax,
117
+ IPhone14,
118
+ IPhone14ProMax,
119
+ KindleFireHDX,
120
+ LaptopWithHIDPIScreen,
121
+ LaptopWithMDPIScreen,
122
+ LaptopWithTouch,
123
+ LGG6,
124
+ LGOptimusL70,
125
+ MicrosoftLumia550,
126
+ MicrosoftLumia950,
127
+ Nexus10,
128
+ Nexus4,
129
+ Nexus5,
130
+ Nexus5X,
131
+ Nexus6,
132
+ Nexus6P,
133
+ Nexus7,
134
+ NokiaLumia520,
135
+ NokiaN9,
136
+ OnePlus7T,
137
+ OnePlus7TPro,
138
+ Pixel2,
139
+ Pixel2XL,
140
+ Pixel3,
141
+ Pixel3XL,
142
+ Pixel4,
143
+ Pixel4XL,
144
+ Pixel5,
145
+ Pixel6,
146
+ XiaomiRedmiNote11,
147
+ XiaomiRedmiNote11Pro,
148
+ GalaxyS22,
149
+ GalaxyS22Plus,
150
+ GalaxyTabS7,
151
+ GalaxyTabS8
43
152
  ]
44
153
  end
45
154
  end
@@ -19,7 +19,7 @@ module Applitools::Selenium
19
19
  FINDERS = {
20
20
  class: 'class name',
21
21
  class_name: 'class name',
22
- css: 'css selector',
22
+ css: 'css',
23
23
  id: 'id',
24
24
  link: 'link text',
25
25
  link_text: 'link text',
@@ -227,6 +227,22 @@ module Applitools::Selenium
227
227
  )
228
228
  end
229
229
 
230
+ def universal_driver_config
231
+ if respond_to?(:session_id)
232
+ {
233
+ serverUrl: server_url,
234
+ sessionId: session_id,
235
+ capabilities: capabilities.as_json
236
+ }
237
+ else
238
+ {
239
+ serverUrl: server_url,
240
+ sessionId: bridge.session_id,
241
+ capabilities: capabilities.as_json
242
+ }
243
+ end
244
+ end
245
+
230
246
  private
231
247
 
232
248
  attr_reader :cached_default_content_viewport_size
@@ -245,6 +261,10 @@ module Applitools::Selenium
245
261
  @driver ||= __getobj__
246
262
  end
247
263
 
264
+ def server_url
265
+ bridge.http.send(:server_url).to_s
266
+ end
267
+
248
268
  def extract_args(args)
249
269
  case args.size
250
270
  when 2
@@ -6,11 +6,11 @@ module Applitools
6
6
  options = Applitools::Utils.extract_options!(args)
7
7
  server_url = options.delete(:server_url)
8
8
  server_url = args.first unless server_url
9
- runner = options.delete(:visual_grid_runner) || options.delete(:runner)
9
+ runner = options.delete(:visual_grid_runner) || options.delete(:runner) || Applitools::ClassicRunner.new
10
10
  if runner.is_a? Applitools::Selenium::VisualGridRunner
11
11
  super Applitools::Selenium::VisualGridEyes.new(runner, server_url)
12
12
  else
13
- super Applitools::Selenium::SeleniumEyes.new(server_url, runner: runner || Applitools::ClassicRunner.new)
13
+ super Applitools::Selenium::SeleniumEyes.new(server_url, runner: runner)
14
14
  end
15
15
  end
16
16
  end
@@ -112,7 +112,7 @@ module Applitools::Selenium
112
112
 
113
113
  logger.info "Creating stitchedImage container. Size: #{entire_size}"
114
114
 
115
- stitched_image = ::ChunkyPNG::Image.new(entire_size.width, entire_size.height)
115
+ # stitched_image = ::ChunkyPNG::Image.new(entire_size.width, entire_size.height)
116
116
  logger.info 'Done! Adding initial screenshot..'
117
117
  logger.info "Initial part:(0,0) [#{image.width} x #{image.height}]"
118
118
 
@@ -18,17 +18,17 @@ module Applitools
18
18
  end
19
19
 
20
20
  # JS_FILES_PATH = File.join(Applitools::JS_PATH, '@applitools', 'dom-snapshot', 'dist')
21
- PROCESS_PAGE_AND_POLL_RB = <<"SCRIPT"
22
- module Applitools
23
- module Selenium
24
- module Scripts
25
- PROCESS_PAGE_AND_POLL = <<'END'
26
- #{get_script_by_file_name('processPageAndSerializePoll')}
27
- END
28
- end
29
- end
30
- end
31
- SCRIPT
21
+ # PROCESS_PAGE_AND_POLL_RB = <<"SCRIPT"
22
+ # module Applitools
23
+ # module Selenium
24
+ # module Scripts
25
+ # PROCESS_PAGE_AND_POLL = <<'END'
26
+ # #{get_script_by_file_name('processPageAndSerializePoll')}
27
+ # END
28
+ # end
29
+ # end
30
+ # end
31
+ # SCRIPT
32
32
  end
33
33
  end
34
34
  end
@@ -1,5 +1,6 @@
1
1
  # frozen_string_literal: false
2
2
 
3
+
3
4
  module Applitools::Selenium
4
5
  # The main API gateway for the SDK
5
6
  class SeleniumEyes < Applitools::EyesBase
@@ -12,7 +13,7 @@ module Applitools::Selenium
12
13
 
13
14
  DEFAULT_WAIT_BEFORE_SCREENSHOTS = 0.1 # Seconds
14
15
 
15
- DEFAULT_STITCHING_OVERLAP = 50 # Pixels
16
+ DEFAULT_STITCHING_OVERLAP = 0 # Pixels
16
17
 
17
18
  ENTIRE_ELEMENT_SCREENSHOT = 0
18
19
 
@@ -56,16 +57,7 @@ module Applitools::Selenium
56
57
  # @param [Applitools::Selenium::Driver] driver The driver instance.
57
58
  # @param [Hash] viewport_size The required browser's viewport size.
58
59
  def set_viewport_size(driver, viewport_size)
59
- Applitools::ArgumentGuard.not_nil(driver, 'Driver')
60
- Applitools::ArgumentGuard.not_nil(viewport_size, 'viewport_size')
61
- Applitools::ArgumentGuard.is_a?(viewport_size, 'viewport_size', Applitools::RectangleSize)
62
- begin
63
- Applitools::Utils::EyesSeleniumUtils.set_viewport_size eyes_driver(driver), viewport_size
64
- rescue => e
65
- Applitools::EyesLogger.error e.class
66
- Applitools::EyesLogger.error e.message
67
- raise Applitools::EyesError.new 'Failed to set viewport size!'
68
- end
60
+ super
69
61
  end
70
62
  end
71
63
 
@@ -100,7 +92,7 @@ module Applitools::Selenium
100
92
  :full_page_capture_algorithm_left_top_offset, :screenshot_type, :send_dom, :use_dom, :enable_patterns,
101
93
  :utils,
102
94
  :config
103
- attr_reader :driver
95
+ attr_accessor :driver
104
96
 
105
97
  def_delegators 'Applitools::EyesLogger', :logger, :log_handler, :log_handler=
106
98
  def_delegators 'config', *Applitools::Selenium::Configuration.methods_to_delegate
@@ -116,7 +108,7 @@ module Applitools::Selenium
116
108
  self.base_agent_id = "eyes.selenium.ruby/#{Applitools::VERSION}".freeze
117
109
  self.check_frame_or_element = false
118
110
  self.region_to_check = nil
119
- self.force_full_page_screenshot = false
111
+ # self.force_full_page_screenshot = false
120
112
  self.dont_get_title = false
121
113
  self.device_pixel_ratio = UNKNOWN_DEVICE_PIXEL_RATIO
122
114
  self.stitch_mode = Applitools::STITCH_MODE[:scroll]
@@ -162,41 +154,43 @@ module Applitools::Selenium
162
154
  # @return [Applitools::Selenium::Driver] A wrapped web driver which enables Eyes
163
155
  # trigger recording and frame handling
164
156
  def open(options = {})
165
- original_driver = options.delete(:driver)
166
- options[:viewport_size] = Applitools::RectangleSize.from_any_argument options[:viewport_size] if
167
- options[:viewport_size]
168
- Applitools::ArgumentGuard.not_nil original_driver, 'options[:driver]'
169
- # Applitools::ArgumentGuard.hash options, 'open(options)', [:app_name, :test_name]
170
-
171
- if disabled?
172
- logger.info('Ignored')
173
- return driver
174
- end
175
-
176
- @driver = self.class.eyes_driver(original_driver, self)
177
- perform_driver_specific_settings(original_driver)
178
-
179
- self.device_pixel_ratio = UNKNOWN_DEVICE_PIXEL_RATIO
180
- self.position_provider = self.class.position_provider(
181
- stitch_mode, driver, disable_horizontal_scrolling, disable_vertical_scrolling, explicit_entire_size
182
- )
183
-
184
- self.eyes_screenshot_factory = lambda do |image|
185
- Applitools::Selenium::ViewportScreenshot.new(
186
- image, driver: @driver, force_offset: position_provider.force_offset
187
- )
188
- end
189
-
190
- open_base(options) do
191
- self.viewport_size = get_viewport_size if force_driver_resolution_as_viewport_size
192
- ensure_running_session
193
- end
194
- if runner
195
- runner.add_batch(batch.id) do
196
- server_connector.close_batch(batch.id)
197
- end
198
- end
199
- @driver
157
+ # runner.add_batch(batch.id) { runner.close_batch(batch.id) } if runner
158
+ universal_open(options)
159
+ # original_driver = options.delete(:driver)
160
+ # options[:viewport_size] = Applitools::RectangleSize.from_any_argument options[:viewport_size] if
161
+ # options[:viewport_size]
162
+ # Applitools::ArgumentGuard.not_nil original_driver, 'options[:driver]'
163
+ # # Applitools::ArgumentGuard.hash options, 'open(options)', [:app_name, :test_name]
164
+ #
165
+ # if disabled?
166
+ # logger.info('Ignored')
167
+ # return driver
168
+ # end
169
+ #
170
+ # @driver = self.class.eyes_driver(original_driver, self)
171
+ # perform_driver_specific_settings(original_driver)
172
+ #
173
+ # self.device_pixel_ratio = UNKNOWN_DEVICE_PIXEL_RATIO
174
+ # self.position_provider = self.class.position_provider(
175
+ # stitch_mode, driver, disable_horizontal_scrolling, disable_vertical_scrolling, explicit_entire_size
176
+ # )
177
+ #
178
+ # self.eyes_screenshot_factory = lambda do |image|
179
+ # Applitools::Selenium::ViewportScreenshot.new(
180
+ # image, driver: @driver, force_offset: position_provider.force_offset
181
+ # )
182
+ # end
183
+ #
184
+ # open_base(options) do
185
+ # self.viewport_size = get_viewport_size if force_driver_resolution_as_viewport_size
186
+ # ensure_running_session
187
+ # end
188
+ # if runner
189
+ # runner.add_batch(batch.id) do
190
+ # server_connector.close_batch(batch.id)
191
+ # end
192
+ # end
193
+ # @driver
200
194
  end
201
195
 
202
196
  def perform_driver_specific_settings(original_driver)
@@ -219,7 +213,15 @@ module Applitools::Selenium
219
213
  # @!visibility private
220
214
  def get_viewport_size(web_driver = driver)
221
215
  Applitools::ArgumentGuard.not_nil 'web_driver', web_driver
222
- self.utils.extract_viewport_size(driver)
216
+ # self.utils.extract_viewport_size(driver)
217
+ driver_config_json = web_driver.universal_driver_config
218
+
219
+ Applitools::EyesLogger.debug 'extract_viewport_size()'
220
+ viewport_size = runner.universal_client.core_get_viewport_size(driver_config_json)
221
+ result = Applitools::RectangleSize.new viewport_size[:width], viewport_size[:height]
222
+
223
+ Applitools::EyesLogger.debug "Viewport size is #{result}."
224
+ result
223
225
  end
224
226
 
225
227
  # Takes a snapshot and matches it with the expected output.
@@ -242,6 +244,9 @@ module Applitools::Selenium
242
244
  logger.info "check(#{name}) is called"
243
245
  self.tag_for_debug = name
244
246
  Applitools::ArgumentGuard.is_a? target, 'target', Applitools::Selenium::Target
247
+
248
+ return universal_check(name, target)
249
+
245
250
  target_to_check = target.finalize
246
251
  original_overflow = nil
247
252
  original_position_provider = position_provider