eyes_selenium 3.18.4 → 6.9.0
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 +5 -5
- data/CHANGELOG.md +1713 -0
- data/Rakefile +86 -0
- data/eyes_selenium.gemspec +33 -0
- data/lib/applitools/eyes_selenium/version.rb +8 -0
- data/lib/applitools/selenium/browser_types.rb +14 -10
- data/lib/applitools/selenium/browsers_info.rb +8 -0
- data/lib/applitools/selenium/concerns/selenium_eyes.rb +2 -6
- data/lib/applitools/selenium/configuration.rb +13 -4
- data/lib/applitools/selenium/device_name_generated.rb +207 -0
- data/lib/applitools/selenium/devices.rb +106 -40
- data/lib/applitools/selenium/driver.rb +21 -1
- data/lib/applitools/selenium/eyes.rb +2 -2
- data/lib/applitools/selenium/full_page_capture_algorithm.rb +1 -1
- data/lib/applitools/selenium/selenium_eyes.rb +61 -49
- data/lib/applitools/selenium/target.rb +259 -162
- data/lib/applitools/selenium/visual_grid/chrome_emulation_info.rb +4 -0
- data/lib/applitools/selenium/visual_grid/desktop_browser_info.rb +6 -0
- data/lib/applitools/selenium/visual_grid/dom_snapshot_script.rb +2 -1
- data/lib/applitools/selenium/visual_grid/ios_device_info.rb +12 -0
- data/lib/applitools/selenium/visual_grid/ios_device_name.rb +3 -35
- data/lib/applitools/selenium/visual_grid/ios_device_name_generated.rb +93 -0
- data/lib/applitools/selenium/visual_grid/running_test.rb +1 -1
- data/lib/applitools/selenium/visual_grid/thread_pool.rb +2 -1
- data/lib/applitools/selenium/visual_grid/vg_resource.rb +7 -6
- data/lib/applitools/selenium/visual_grid/visual_grid_eyes.rb +139 -55
- data/lib/applitools/selenium/visual_grid/visual_grid_runner.rb +6 -2
- data/lib/eyes_selenium.rb +23 -2
- metadata +14 -26
- data/lib/applitools/selenium/scripts/process_page_and_poll.rb +0 -17
- data/lib/applitools/selenium/scripts/templates.rb +0 -34
- data/lib/applitools/version.rb +0 -5
@@ -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 =
|
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
|
-
|
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
|
-
|
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]
|
@@ -139,6 +131,13 @@ module Applitools::Selenium
|
|
139
131
|
self.utils = Applitools::Utils::EyesSeleniumUtils
|
140
132
|
end
|
141
133
|
|
134
|
+
def self.environment_sdk
|
135
|
+
{
|
136
|
+
name: :eyes_selenium,
|
137
|
+
currentVersion: Applitools::EyesSelenium::VERSION
|
138
|
+
}
|
139
|
+
end
|
140
|
+
|
142
141
|
def ensure_config
|
143
142
|
self.config = Applitools::Selenium::Configuration.new
|
144
143
|
end
|
@@ -162,41 +161,43 @@ module Applitools::Selenium
|
|
162
161
|
# @return [Applitools::Selenium::Driver] A wrapped web driver which enables Eyes
|
163
162
|
# trigger recording and frame handling
|
164
163
|
def open(options = {})
|
165
|
-
|
166
|
-
options
|
167
|
-
|
168
|
-
Applitools::
|
169
|
-
#
|
170
|
-
|
171
|
-
|
172
|
-
|
173
|
-
|
174
|
-
|
175
|
-
|
176
|
-
|
177
|
-
|
178
|
-
|
179
|
-
|
180
|
-
|
181
|
-
|
182
|
-
|
183
|
-
|
184
|
-
|
185
|
-
|
186
|
-
|
187
|
-
|
188
|
-
|
189
|
-
|
190
|
-
|
191
|
-
|
192
|
-
|
193
|
-
|
194
|
-
|
195
|
-
|
196
|
-
|
197
|
-
|
198
|
-
|
199
|
-
|
164
|
+
# runner.add_batch(batch.id) { runner.close_batch(batch.id) } if runner
|
165
|
+
universal_open(options)
|
166
|
+
# original_driver = options.delete(:driver)
|
167
|
+
# options[:viewport_size] = Applitools::RectangleSize.from_any_argument options[:viewport_size] if
|
168
|
+
# options[:viewport_size]
|
169
|
+
# Applitools::ArgumentGuard.not_nil original_driver, 'options[:driver]'
|
170
|
+
# # Applitools::ArgumentGuard.hash options, 'open(options)', [:app_name, :test_name]
|
171
|
+
#
|
172
|
+
# if disabled?
|
173
|
+
# logger.info('Ignored')
|
174
|
+
# return driver
|
175
|
+
# end
|
176
|
+
#
|
177
|
+
# @driver = self.class.eyes_driver(original_driver, self)
|
178
|
+
# perform_driver_specific_settings(original_driver)
|
179
|
+
#
|
180
|
+
# self.device_pixel_ratio = UNKNOWN_DEVICE_PIXEL_RATIO
|
181
|
+
# self.position_provider = self.class.position_provider(
|
182
|
+
# stitch_mode, driver, disable_horizontal_scrolling, disable_vertical_scrolling, explicit_entire_size
|
183
|
+
# )
|
184
|
+
#
|
185
|
+
# self.eyes_screenshot_factory = lambda do |image|
|
186
|
+
# Applitools::Selenium::ViewportScreenshot.new(
|
187
|
+
# image, driver: @driver, force_offset: position_provider.force_offset
|
188
|
+
# )
|
189
|
+
# end
|
190
|
+
#
|
191
|
+
# open_base(options) do
|
192
|
+
# self.viewport_size = get_viewport_size if force_driver_resolution_as_viewport_size
|
193
|
+
# ensure_running_session
|
194
|
+
# end
|
195
|
+
# if runner
|
196
|
+
# runner.add_batch(batch.id) do
|
197
|
+
# server_connector.close_batch(batch.id)
|
198
|
+
# end
|
199
|
+
# end
|
200
|
+
# @driver
|
200
201
|
end
|
201
202
|
|
202
203
|
def perform_driver_specific_settings(original_driver)
|
@@ -219,7 +220,15 @@ module Applitools::Selenium
|
|
219
220
|
# @!visibility private
|
220
221
|
def get_viewport_size(web_driver = driver)
|
221
222
|
Applitools::ArgumentGuard.not_nil 'web_driver', web_driver
|
222
|
-
self.utils.extract_viewport_size(driver)
|
223
|
+
# self.utils.extract_viewport_size(driver)
|
224
|
+
driver_config_json = web_driver.universal_driver_config
|
225
|
+
|
226
|
+
Applitools::EyesLogger.debug 'extract_viewport_size()'
|
227
|
+
viewport_size = runner.universal_client.core_get_viewport_size(driver_config_json)
|
228
|
+
result = Applitools::RectangleSize.new viewport_size[:width], viewport_size[:height]
|
229
|
+
|
230
|
+
Applitools::EyesLogger.debug "Viewport size is #{result}."
|
231
|
+
result
|
223
232
|
end
|
224
233
|
|
225
234
|
# Takes a snapshot and matches it with the expected output.
|
@@ -242,6 +251,9 @@ module Applitools::Selenium
|
|
242
251
|
logger.info "check(#{name}) is called"
|
243
252
|
self.tag_for_debug = name
|
244
253
|
Applitools::ArgumentGuard.is_a? target, 'target', Applitools::Selenium::Target
|
254
|
+
|
255
|
+
return universal_check(name, target)
|
256
|
+
|
245
257
|
target_to_check = target.finalize
|
246
258
|
original_overflow = nil
|
247
259
|
original_position_provider = position_provider
|