eyes_selenium 6.12.10 → 6.12.11
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 +4 -4
- data/CHANGELOG.md +25 -0
- data/eyes_selenium.gemspec +2 -5
- data/lib/applitools/eyes_selenium/version.rb +1 -1
- data/lib/applitools/selenium/browsers_info.rb +2 -0
- data/lib/applitools/selenium/concerns/selenium_eyes.rb +0 -33
- data/lib/applitools/selenium/driver.rb +1 -1
- data/lib/applitools/selenium/eyes.rb +1 -5
- data/lib/applitools/selenium/selenium_eyes.rb +15 -315
- data/lib/applitools/selenium/visual_grid/visual_grid_runner.rb +33 -92
- data/lib/eyes_selenium.rb +0 -2
- metadata +9 -64
- data/lib/applitools/selenium/css_parser/find_embedded_resources.rb +0 -102
- data/lib/applitools/selenium/dom_capture/dom_capture.rb +0 -172
- data/lib/applitools/selenium/dom_capture/dom_capture_script.rb +0 -611
- data/lib/applitools/selenium/external_css_resources.rb +0 -32
- data/lib/applitools/selenium/visual_grid/dom_snapshot_script.rb +0 -198
- data/lib/applitools/selenium/visual_grid/eyes_connector.rb +0 -170
- data/lib/applitools/selenium/visual_grid/render_info.rb +0 -24
- data/lib/applitools/selenium/visual_grid/render_request.rb +0 -24
- data/lib/applitools/selenium/visual_grid/render_requests.rb +0 -12
- data/lib/applitools/selenium/visual_grid/render_task.rb +0 -311
- data/lib/applitools/selenium/visual_grid/resource_cache.rb +0 -69
- data/lib/applitools/selenium/visual_grid/running_test.rb +0 -271
- data/lib/applitools/selenium/visual_grid/thread_pool.rb +0 -95
- data/lib/applitools/selenium/visual_grid/vg_match_window_data.rb +0 -187
- data/lib/applitools/selenium/visual_grid/vg_region.rb +0 -16
- data/lib/applitools/selenium/visual_grid/vg_resource.rb +0 -77
- data/lib/applitools/selenium/visual_grid/vg_task.rb +0 -53
- data/lib/applitools/selenium/visual_grid/visual_grid_eyes.rb +0 -494
- data/lib/applitools/selenium/visual_grid/web_element_region.rb +0 -16
|
@@ -1,494 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
require 'applitools/selenium/configuration'
|
|
4
|
-
require 'timeout'
|
|
5
|
-
require 'securerandom'
|
|
6
|
-
|
|
7
|
-
module Applitools
|
|
8
|
-
module Selenium
|
|
9
|
-
class VisualGridEyes
|
|
10
|
-
# new open, with eyes-manager
|
|
11
|
-
include Applitools::UniversalEyesOpen
|
|
12
|
-
# all checks here
|
|
13
|
-
include Applitools::UniversalEyesChecks
|
|
14
|
-
# add extract_text, extract_text_regions, locate
|
|
15
|
-
include Applitools::UniversalNewApi
|
|
16
|
-
|
|
17
|
-
include Applitools::Selenium::Concerns::SeleniumEyes
|
|
18
|
-
USE_DEFAULT_MATCH_TIMEOUT = -1
|
|
19
|
-
extend Forwardable
|
|
20
|
-
|
|
21
|
-
def_delegators 'Applitools::EyesLogger', :logger, :log_handler, :log_handler=
|
|
22
|
-
|
|
23
|
-
attr_accessor :visual_grid_manager, :driver, :current_url, :current_config, :fetched_cache_map,
|
|
24
|
-
:utils,
|
|
25
|
-
:enable_patterns,
|
|
26
|
-
:config, :driver_lock, :test_uuid, :dont_get_title
|
|
27
|
-
attr_accessor :test_list
|
|
28
|
-
|
|
29
|
-
attr_accessor :api_key, :server_url, :proxy, :opened
|
|
30
|
-
|
|
31
|
-
attr_accessor :size_mod, :region_to_check
|
|
32
|
-
private :size_mod, :size_mod=, :region_to_check, :region_to_check=, :test_uuid, :test_uuid=, :config, :config=
|
|
33
|
-
|
|
34
|
-
def_delegators 'config', *Applitools::Selenium::Configuration.methods_to_delegate
|
|
35
|
-
def_delegators 'config', *Applitools::EyesBaseConfiguration.methods_to_delegate
|
|
36
|
-
|
|
37
|
-
alias runner visual_grid_manager
|
|
38
|
-
attr_accessor :universal_eyes, :universal_driver
|
|
39
|
-
attr_accessor :debug_screenshots, :save_failed_tests, :scale_ratio, :disabled, :stitching_overlap, :compare_with_parent_branch
|
|
40
|
-
|
|
41
|
-
def initialize(visual_grid_manager, server_url = nil)
|
|
42
|
-
ensure_config
|
|
43
|
-
@server_connector = Applitools::Connectivity::ServerConnector.new(server_url)
|
|
44
|
-
@server_connector.obtain_agent_id do
|
|
45
|
-
full_agent_id
|
|
46
|
-
end
|
|
47
|
-
self.server_url = server_url if server_url
|
|
48
|
-
self.visual_grid_manager = visual_grid_manager
|
|
49
|
-
self.test_list = Applitools::Selenium::TestList.new
|
|
50
|
-
self.opened = false
|
|
51
|
-
self.test_list ||= Applitools::Selenium::TestList.new
|
|
52
|
-
self.driver_lock = Mutex.new
|
|
53
|
-
self.utils = Applitools::Utils::EyesSeleniumUtils
|
|
54
|
-
end
|
|
55
|
-
|
|
56
|
-
def self.environment_sdk
|
|
57
|
-
{
|
|
58
|
-
name: :eyes_selenium,
|
|
59
|
-
currentVersion: Applitools::EyesSelenium::VERSION
|
|
60
|
-
}
|
|
61
|
-
end
|
|
62
|
-
|
|
63
|
-
def ensure_config
|
|
64
|
-
self.config = Applitools::Selenium::Configuration.new
|
|
65
|
-
self.send_dom = true
|
|
66
|
-
end
|
|
67
|
-
|
|
68
|
-
def full_agent_id
|
|
69
|
-
"eyes.selenium.visualgrid.ruby/#{Applitools::VERSION}"
|
|
70
|
-
end
|
|
71
|
-
|
|
72
|
-
def configure
|
|
73
|
-
return unless block_given?
|
|
74
|
-
yield(config)
|
|
75
|
-
nil
|
|
76
|
-
end
|
|
77
|
-
|
|
78
|
-
def open(*args)
|
|
79
|
-
# visual_grid_manager.add_batch(batch.id) { visual_grid_manager.close_batch(batch.id) }
|
|
80
|
-
# self.test_uuid = SecureRandom.uuid
|
|
81
|
-
options = Applitools::Utils.extract_options!(args)
|
|
82
|
-
universal_open(options)
|
|
83
|
-
# Applitools::ArgumentGuard.hash(options, 'options', [:driver])
|
|
84
|
-
#
|
|
85
|
-
# config.app_name = options[:app_name] if options[:app_name]
|
|
86
|
-
# config.test_name = options[:test_name] if options[:test_name]
|
|
87
|
-
# config.agent_run_id = "#{config.test_name}--#{SecureRandom.hex(10)}"
|
|
88
|
-
#
|
|
89
|
-
# if config.viewport_size.nil? || config.viewport_size && config.viewport_size.empty?
|
|
90
|
-
# config.viewport_size = Applitools::RectangleSize.from_any_argument(options[:viewport_size]) if options[:viewport_size]
|
|
91
|
-
# end
|
|
92
|
-
#
|
|
93
|
-
# self.driver = Applitools::Selenium::SeleniumEyes.eyes_driver(options.delete(:driver), self)
|
|
94
|
-
# self.current_url = driver.current_url
|
|
95
|
-
#
|
|
96
|
-
# if viewport_size
|
|
97
|
-
# set_viewport_size(viewport_size)
|
|
98
|
-
# else
|
|
99
|
-
# self.viewport_size = get_viewport_size
|
|
100
|
-
# end
|
|
101
|
-
#
|
|
102
|
-
# visual_grid_manager.open(self)
|
|
103
|
-
# visual_grid_manager.add_batch(batch.id) do
|
|
104
|
-
# server_connector.close_batch(batch.id)
|
|
105
|
-
# end
|
|
106
|
-
#
|
|
107
|
-
# logger.info('Getting all browsers info...')
|
|
108
|
-
# browsers_info_list = config.browsers_info
|
|
109
|
-
# logger.info('Creating test descriptors for each browser info...')
|
|
110
|
-
# browsers_info_list.each(viewport_size) do |bi|
|
|
111
|
-
# test = Applitools::Selenium::RunningTest.new(eyes_connector, bi, driver).tap do |t|
|
|
112
|
-
# t.on_results_received do |results|
|
|
113
|
-
# visual_grid_manager.aggregate_result(results)
|
|
114
|
-
# end
|
|
115
|
-
# t.test_uuid = test_uuid
|
|
116
|
-
# end
|
|
117
|
-
# test_list.push test
|
|
118
|
-
# end
|
|
119
|
-
# self.opened = true
|
|
120
|
-
# driver
|
|
121
|
-
end
|
|
122
|
-
|
|
123
|
-
def get_viewport_size(web_driver = driver)
|
|
124
|
-
Applitools::ArgumentGuard.not_nil 'web_driver', web_driver
|
|
125
|
-
# self.utils.extract_viewport_size(driver)
|
|
126
|
-
driver_config_json = universal_driver_config(web_driver)
|
|
127
|
-
|
|
128
|
-
Applitools::EyesLogger.debug 'extract_viewport_size()'
|
|
129
|
-
viewport_size = runner.universal_client.core_get_viewport_size(driver_config_json)
|
|
130
|
-
result = Applitools::RectangleSize.new viewport_size[:width], viewport_size[:height]
|
|
131
|
-
|
|
132
|
-
Applitools::EyesLogger.debug "Viewport size is #{result}."
|
|
133
|
-
result
|
|
134
|
-
end
|
|
135
|
-
|
|
136
|
-
def eyes_connector
|
|
137
|
-
logger.info('Creating VisualGridEyes server connector')
|
|
138
|
-
::Applitools::Selenium::EyesConnector.new(server_url, driver_lock: driver_lock).tap do |connector|
|
|
139
|
-
connector.batch = batch
|
|
140
|
-
connector.config = config.deep_clone
|
|
141
|
-
end
|
|
142
|
-
end
|
|
143
|
-
|
|
144
|
-
def check(*args)
|
|
145
|
-
args.compact!
|
|
146
|
-
case (first_arg = args.shift)
|
|
147
|
-
when String
|
|
148
|
-
tag = first_arg
|
|
149
|
-
target = args.shift
|
|
150
|
-
when Applitools::Selenium::Target
|
|
151
|
-
target = first_arg
|
|
152
|
-
when Hash
|
|
153
|
-
target = first_arg[:target]
|
|
154
|
-
tag = first_arg[:name] || first_arg[:tag]
|
|
155
|
-
end
|
|
156
|
-
|
|
157
|
-
render_task = nil
|
|
158
|
-
target.default_full_page_for_vg
|
|
159
|
-
|
|
160
|
-
return universal_check(tag, target)
|
|
161
|
-
|
|
162
|
-
target_to_check = target.finalize
|
|
163
|
-
begin
|
|
164
|
-
check_in_frame(target_frames: target_to_check.frames) do
|
|
165
|
-
sleep wait_before_screenshots
|
|
166
|
-
Applitools::EyesLogger.info 'Trying to get DOM snapshot...'
|
|
167
|
-
begin
|
|
168
|
-
dont_fetch_resources = self.dont_fetch_resources
|
|
169
|
-
enable_cross_origin_rendering = self.enable_cross_origin_rendering
|
|
170
|
-
use_cookies = !self.dont_use_cookies
|
|
171
|
-
urls_to_skip = visual_grid_manager.resource_cache.urls_to_skip
|
|
172
|
-
dom_script = Applitools::Selenium::DomSnapshotScript.new driver
|
|
173
|
-
|
|
174
|
-
script_dom = dom_script.create_dom_snapshot(
|
|
175
|
-
dont_fetch_resources,
|
|
176
|
-
urls_to_skip,
|
|
177
|
-
enable_cross_origin_rendering,
|
|
178
|
-
use_cookies
|
|
179
|
-
)
|
|
180
|
-
rescue StandardError => e
|
|
181
|
-
Applitools::EyesLogger.error e.class.to_s
|
|
182
|
-
Applitools::EyesLogger.error e.message
|
|
183
|
-
raise ::Applitools::EyesError.new 'Error while getting dom snapshot!'
|
|
184
|
-
end
|
|
185
|
-
Applitools::EyesLogger.info 'Done!'
|
|
186
|
-
|
|
187
|
-
mod = Digest::SHA2.hexdigest(script_dom.to_s)
|
|
188
|
-
|
|
189
|
-
region_x_paths = get_regions_x_paths(target_to_check)
|
|
190
|
-
|
|
191
|
-
render_task = RenderTask.new(
|
|
192
|
-
"Render #{config.short_description} - #{tag}",
|
|
193
|
-
script_dom,
|
|
194
|
-
visual_grid_manager,
|
|
195
|
-
server_connector,
|
|
196
|
-
region_x_paths,
|
|
197
|
-
size_mod,
|
|
198
|
-
region_to_check,
|
|
199
|
-
target_to_check.options[:script_hooks],
|
|
200
|
-
config.rendering_grid_force_put,
|
|
201
|
-
self.utils.user_agent(driver),
|
|
202
|
-
visual_grid_options.merge(target_to_check.options[:visual_grid_options]),
|
|
203
|
-
mod
|
|
204
|
-
)
|
|
205
|
-
end
|
|
206
|
-
|
|
207
|
-
if size_mod == 'selector' || size_mod == 'full-selector'
|
|
208
|
-
target_to_check.convert_coordinates(&Applitools::Selenium::VgMatchWindowData::CONVERT_COORDINATES)
|
|
209
|
-
end
|
|
210
|
-
|
|
211
|
-
title = begin
|
|
212
|
-
driver.title
|
|
213
|
-
rescue StandardError => e
|
|
214
|
-
logger.warn "failed (#{e.message})"
|
|
215
|
-
''
|
|
216
|
-
end
|
|
217
|
-
|
|
218
|
-
test_list.select { |t| t.test_uuid == test_uuid }.each do |t|
|
|
219
|
-
t.check(tag, target_to_check, render_task, title)
|
|
220
|
-
end
|
|
221
|
-
test_list.each(&:becomes_not_rendered)
|
|
222
|
-
visual_grid_manager.enqueue_render_task render_task
|
|
223
|
-
rescue StandardError => e
|
|
224
|
-
test_list.each(&:becomes_tested)
|
|
225
|
-
Applitools::EyesLogger.error e.class.to_s
|
|
226
|
-
Applitools::EyesLogger.error e.message
|
|
227
|
-
end
|
|
228
|
-
end
|
|
229
|
-
|
|
230
|
-
def get_regions_x_paths(target)
|
|
231
|
-
result = []
|
|
232
|
-
collect_selenium_regions(target).each do |el, v|
|
|
233
|
-
next unless [::Selenium::WebDriver::Element, Applitools::Selenium::Element].include?(el.class)
|
|
234
|
-
|
|
235
|
-
xpath = driver.execute_script(Applitools::Selenium::Scripts::GET_ELEMENT_XPATH_JS, el)
|
|
236
|
-
web_element_region = Applitools::Selenium::WebElementRegion.new(xpath, v)
|
|
237
|
-
self.region_to_check = web_element_region.dup if v == :target && (size_mod == 'selector' || size_mod == 'full-selector')
|
|
238
|
-
result << web_element_region
|
|
239
|
-
target.regions[el] = result.size - 1
|
|
240
|
-
end
|
|
241
|
-
result
|
|
242
|
-
end
|
|
243
|
-
|
|
244
|
-
def collect_selenium_regions(target)
|
|
245
|
-
selenium_regions = {}
|
|
246
|
-
target_element = target.region_to_check
|
|
247
|
-
setup_size_mode(target_element, target, :none)
|
|
248
|
-
target.ignored_regions.each do |r|
|
|
249
|
-
selenium_regions[element_or_region(r, target, :ignore)] = :ignore
|
|
250
|
-
end
|
|
251
|
-
target.floating_regions.each do |r|
|
|
252
|
-
selenium_regions[element_or_region(r, target, :floating)] = :floating
|
|
253
|
-
end
|
|
254
|
-
target.layout_regions.each do |r|
|
|
255
|
-
selenium_regions[element_or_region(r, target, :layout_regions)] = :layout
|
|
256
|
-
end
|
|
257
|
-
target.strict_regions.each do |r|
|
|
258
|
-
selenium_regions[element_or_region(r, target, :strict_regions)] = :strict
|
|
259
|
-
end
|
|
260
|
-
target.content_regions.each do |r|
|
|
261
|
-
selenium_regions[element_or_region(r, target, :content_regions)] = :content
|
|
262
|
-
end
|
|
263
|
-
target.accessibility_regions.each do |r|
|
|
264
|
-
case (r = element_or_region(r, target, :accessibility_regions))
|
|
265
|
-
when Array
|
|
266
|
-
r.each do |rr|
|
|
267
|
-
selenium_regions[rr] = :accessibility
|
|
268
|
-
end
|
|
269
|
-
else
|
|
270
|
-
selenium_regions[r] = :accessibility
|
|
271
|
-
end
|
|
272
|
-
end
|
|
273
|
-
selenium_regions[region_to_check] = :target if size_mod == 'selector' || size_mod == 'full-selector'
|
|
274
|
-
|
|
275
|
-
selenium_regions
|
|
276
|
-
end
|
|
277
|
-
|
|
278
|
-
def setup_size_mode(target_element, target, key)
|
|
279
|
-
self.size_mod = 'full-page'
|
|
280
|
-
|
|
281
|
-
element_or_region = element_or_region(target_element, target, key)
|
|
282
|
-
|
|
283
|
-
self.size_mod = case element_or_region
|
|
284
|
-
when ::Selenium::WebDriver::Element, Applitools::Selenium::Element
|
|
285
|
-
if target.options[:stitch_content]
|
|
286
|
-
'full-selector'
|
|
287
|
-
else
|
|
288
|
-
'selector'
|
|
289
|
-
end
|
|
290
|
-
when Applitools::Region
|
|
291
|
-
if element_or_region == Applitools::Region::EMPTY
|
|
292
|
-
if target.options[:stitch_content]
|
|
293
|
-
'full-page'
|
|
294
|
-
else
|
|
295
|
-
element_or_region = Applitools::Region.from_location_size(
|
|
296
|
-
Applitools::Location::TOP_LEFT, viewport_size
|
|
297
|
-
)
|
|
298
|
-
'region'
|
|
299
|
-
end
|
|
300
|
-
else
|
|
301
|
-
'region'
|
|
302
|
-
end
|
|
303
|
-
else
|
|
304
|
-
'full-page'
|
|
305
|
-
end
|
|
306
|
-
|
|
307
|
-
self.region_to_check = element_or_region
|
|
308
|
-
end
|
|
309
|
-
|
|
310
|
-
def element_or_region(target_element, target, options_key)
|
|
311
|
-
if target_element.respond_to?(:call)
|
|
312
|
-
region, padding_proc = target_element.call(driver, true)
|
|
313
|
-
case region
|
|
314
|
-
when Array
|
|
315
|
-
regions_to_replace = region.map { |r| Applitools::Selenium::VGRegion.new(r, padding_proc) }
|
|
316
|
-
target.replace_region(target_element, regions_to_replace, options_key)
|
|
317
|
-
else
|
|
318
|
-
target.replace_region(target_element, Applitools::Selenium::VGRegion.new(region, padding_proc), options_key)
|
|
319
|
-
end
|
|
320
|
-
region
|
|
321
|
-
else
|
|
322
|
-
target_element
|
|
323
|
-
end
|
|
324
|
-
end
|
|
325
|
-
|
|
326
|
-
def close_async
|
|
327
|
-
# test_list.each(&:close)
|
|
328
|
-
close(false)
|
|
329
|
-
end
|
|
330
|
-
|
|
331
|
-
def close(throw_exception = true)
|
|
332
|
-
logger.info "close(#{throw_exception})"
|
|
333
|
-
logger.info 'Ending server session...'
|
|
334
|
-
|
|
335
|
-
raise Applitools::EyesNotOpenException.new 'Eyes not open' unless open?
|
|
336
|
-
universal_results = universal_eyes.close # Array even for one test
|
|
337
|
-
self.opened = false
|
|
338
|
-
all_results = get_results(throw_exception)
|
|
339
|
-
# universal_results = universal_eyes.eyes_get_results # Array even for one test
|
|
340
|
-
# # require 'pry'
|
|
341
|
-
# # binding.pry
|
|
342
|
-
# raise Applitools::EyesError.new("Request failed: #{universal_results[:message]}") if server_error?(universal_results)
|
|
343
|
-
# results = universal_results.map {|result| Applitools::TestResults.new(result) }
|
|
344
|
-
# # results = results.first if results.size == 1
|
|
345
|
-
# # session_results_url = results.url
|
|
346
|
-
# all_results = results.compact
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
# return false if test_list.empty?
|
|
350
|
-
# close_async
|
|
351
|
-
#
|
|
352
|
-
# until (states = test_list.map(&:state_name).uniq).count == 1 && states.first == :completed
|
|
353
|
-
# sleep 0.5
|
|
354
|
-
# end
|
|
355
|
-
# self.opened = false
|
|
356
|
-
#
|
|
357
|
-
# test_list.select { |t| t.pending_exceptions && !t.pending_exceptions.empty? }.each do |t|
|
|
358
|
-
# t.pending_exceptions.each do |e|
|
|
359
|
-
# raise e
|
|
360
|
-
# end
|
|
361
|
-
# end
|
|
362
|
-
#
|
|
363
|
-
# all_results = test_list.map(&:test_result).compact
|
|
364
|
-
# failed_results = all_results.select { |r| !r.as_expected? }
|
|
365
|
-
#
|
|
366
|
-
# if throw_exception
|
|
367
|
-
# all_results.each do |r|
|
|
368
|
-
# raise Applitools::NewTestError.new new_test_error_message(r), r if r.new?
|
|
369
|
-
# raise Applitools::DiffsFoundError.new diffs_found_error_message(r), r if r.unresolved? && !r.new?
|
|
370
|
-
# raise Applitools::TestFailedError.new test_failed_error_message(r), r if r.failed?
|
|
371
|
-
# end
|
|
372
|
-
# end
|
|
373
|
-
|
|
374
|
-
# failed_results.empty? ? all_results.first : failed_results.first
|
|
375
|
-
all_results.first
|
|
376
|
-
end
|
|
377
|
-
|
|
378
|
-
def get_results(throw_exception = true)
|
|
379
|
-
logger.info "get_results(#{throw_exception})"
|
|
380
|
-
logger.info 'Getting results...'
|
|
381
|
-
|
|
382
|
-
universal_results = universal_eyes.eyes_get_results # Array even for one test
|
|
383
|
-
# require 'pry'
|
|
384
|
-
# binding.pry
|
|
385
|
-
raise Applitools::EyesError.new("Request failed: #{universal_results[:message]}") if server_error?(universal_results)
|
|
386
|
-
results = universal_results.map {|result| Applitools::TestResults.new(result) }
|
|
387
|
-
all_results = results.compact
|
|
388
|
-
|
|
389
|
-
if throw_exception
|
|
390
|
-
all_results.each do |r|
|
|
391
|
-
raise Applitools::NewTestError.new new_test_error_message(r), r if r.new?
|
|
392
|
-
raise Applitools::DiffsFoundError.new diffs_found_error_message(r), r if r.unresolved? && !r.new?
|
|
393
|
-
raise Applitools::TestFailedError.new test_failed_error_message(r), r if r.failed?
|
|
394
|
-
end
|
|
395
|
-
end
|
|
396
|
-
all_results
|
|
397
|
-
end
|
|
398
|
-
|
|
399
|
-
def abort_async
|
|
400
|
-
test_list.each(&:abort)
|
|
401
|
-
universal_sdk_abort
|
|
402
|
-
end
|
|
403
|
-
|
|
404
|
-
def abort_if_not_closed
|
|
405
|
-
self.opened = false
|
|
406
|
-
test_list.each(&:abort)
|
|
407
|
-
universal_sdk_abort
|
|
408
|
-
end
|
|
409
|
-
|
|
410
|
-
alias abort abort_if_not_closed
|
|
411
|
-
|
|
412
|
-
def open?
|
|
413
|
-
opened
|
|
414
|
-
end
|
|
415
|
-
|
|
416
|
-
# rubocop:disable Style/AccessorMethodName
|
|
417
|
-
def get_all_test_results
|
|
418
|
-
test_list.map(&:test_result)
|
|
419
|
-
end
|
|
420
|
-
# rubocop:enable Style/AccessorMethodName
|
|
421
|
-
|
|
422
|
-
# rubocop:disable Style/AccessorMethodName
|
|
423
|
-
def set_viewport_size(value)
|
|
424
|
-
# require('pry')
|
|
425
|
-
# binding.pry
|
|
426
|
-
self.utils.set_viewport_size driver, value
|
|
427
|
-
rescue => e
|
|
428
|
-
logger.error e.class.to_s
|
|
429
|
-
logger.error e.message
|
|
430
|
-
raise Applitools::TestFailedError.new "#{e.class} - #{e.message}"
|
|
431
|
-
end
|
|
432
|
-
# rubocop:enable Style/AccessorMethodName
|
|
433
|
-
|
|
434
|
-
def new_test_error_message(result)
|
|
435
|
-
original_results = result.original_results
|
|
436
|
-
"New test '#{original_results['name']}' " \
|
|
437
|
-
"of '#{original_results['appName']}' " \
|
|
438
|
-
"Please approve the baseline at #{original_results['appUrls']['session']} "
|
|
439
|
-
end
|
|
440
|
-
|
|
441
|
-
def diffs_found_error_message(result)
|
|
442
|
-
original_results = result.original_results
|
|
443
|
-
"Test '#{original_results['name']}' " \
|
|
444
|
-
"of '#{original_results['appname']}' " \
|
|
445
|
-
"detected differences! See details at #{original_results['appUrls']['session']}"
|
|
446
|
-
end
|
|
447
|
-
|
|
448
|
-
def test_failed_error_message(result)
|
|
449
|
-
original_results = result.original_results
|
|
450
|
-
"Test '#{original_results['name']}' of '#{original_results['appName']}' " \
|
|
451
|
-
"is failed! See details at #{original_results['appUrls']['session']}"
|
|
452
|
-
end
|
|
453
|
-
|
|
454
|
-
def server_connector
|
|
455
|
-
@server_connector.server_url = config.server_url
|
|
456
|
-
@server_connector.api_key = config.api_key
|
|
457
|
-
@server_connector.proxy = config.proxy if config.proxy
|
|
458
|
-
@server_connector
|
|
459
|
-
end
|
|
460
|
-
|
|
461
|
-
def configuration
|
|
462
|
-
config.deep_dup
|
|
463
|
-
end
|
|
464
|
-
|
|
465
|
-
def configuration=(value)
|
|
466
|
-
Applitools::ArgumentGuard.is_a?(value, :configuration, Applitools::Selenium::Configuration)
|
|
467
|
-
self.config = value.deep_dup
|
|
468
|
-
end
|
|
469
|
-
|
|
470
|
-
alias get_configuration configuration
|
|
471
|
-
alias set_configuration configuration=
|
|
472
|
-
|
|
473
|
-
def add_mouse_trigger(_mouse_action, _element); end
|
|
474
|
-
|
|
475
|
-
def add_text_trigger(_control, _text); end
|
|
476
|
-
|
|
477
|
-
def disabled=(value)
|
|
478
|
-
@disabled = Applitools::Utils.boolean_value value
|
|
479
|
-
end
|
|
480
|
-
|
|
481
|
-
def disabled?
|
|
482
|
-
@disabled
|
|
483
|
-
end
|
|
484
|
-
|
|
485
|
-
private :new_test_error_message, :diffs_found_error_message, :test_failed_error_message
|
|
486
|
-
|
|
487
|
-
private
|
|
488
|
-
|
|
489
|
-
def ensure_frame_visible(*_args); end
|
|
490
|
-
|
|
491
|
-
def reset_frames_scroll_position(*_args); end
|
|
492
|
-
end
|
|
493
|
-
end
|
|
494
|
-
end
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module Applitools
|
|
4
|
-
module Selenium
|
|
5
|
-
class WebElementRegion
|
|
6
|
-
include Applitools::Jsonable
|
|
7
|
-
json_fields :selector, :category, :type
|
|
8
|
-
|
|
9
|
-
def initialize(selector, category)
|
|
10
|
-
self.selector = selector
|
|
11
|
-
self.category = category
|
|
12
|
-
self.type = 'xpath'
|
|
13
|
-
end
|
|
14
|
-
end
|
|
15
|
-
end
|
|
16
|
-
end
|