eyes_selenium 4.1.0 → 4.1.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
  SHA256:
3
- metadata.gz: d3860d0b666f8564347e4de20dfbfab043918b4c451a3b14cb2d299380160990
4
- data.tar.gz: 14c5bdc931cc1247282a5fbb3326d1cf6656bd9e02489a59ec358069b140d133
3
+ metadata.gz: 482c892bff02afebfd72ca8addc50e11f25b567197b703a091579bc40a8f211a
4
+ data.tar.gz: '08b4163603b5ea9d283d2764a64433a5cc80c8a5401aa300813156d1d644d448'
5
5
  SHA512:
6
- metadata.gz: 788f1a29283a139614d1f6d72b9196a15387e9437a323a7f5a40c96e5e15cf203261d76e952f340b7bd24473a3f6ad6d39ebd7fc343d645a56ea6c25ca8b6542
7
- data.tar.gz: 17cc7c41ba53b5fdf61aa3bc518ab8ccdfbba16d43563d05ce3da1cdd514d475cadee1bafeedc0f63358cfdb14a1d5af92bed5263fc7b6e63dc689a4d0d6b35e
6
+ metadata.gz: 7ae417648a25b296063515f04e72a8ce84e2e8db53a6dc4ca7926c64611f9cea9db9f8db30d352d34b8d9e3b9223a0675c7386a048481da6c8e3b3bea383d80c
7
+ data.tar.gz: ec7b1ee2b2764e74bec8d422ba11e5833bf4ee7f79daf7be1b106fce2ebaa7a2ffbfc06f4d10591e62c7aa91860646864f6f0cde177545658cfa50f427943b69
@@ -27,6 +27,7 @@ module BrowserType
27
27
 
28
28
  EDGE_CHROMIUM = :'edgechromium'
29
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
@@ -66,6 +66,13 @@ module Devices
66
66
  Pixel4 = 'Pixel 4'.freeze
67
67
  Pixel4XL = 'Pixel 4 XL'.freeze
68
68
  Pixel5 = 'Pixel 5'.freeze
69
+ Pixel6 = 'Pixel 6'.freeze
70
+ XiaomiRedmiNote11 = 'Xiaomi Redmi Note 11'.freeze
71
+ XiaomiRedmiNote11Pro = 'Xiaomi Redmi Note 11 Pro'.freeze
72
+ GalaxyS22 = 'Galaxy S22'.freeze
73
+ GalaxyS22Plus = 'Galaxy S22 Plus'.freeze
74
+ GalaxyTabS7 = 'Galaxy Tab S7'.freeze
75
+ GalaxyTabS8 = 'Galaxy Tab S8'.freeze
69
76
 
70
77
  def enum_values
71
78
  [
@@ -130,7 +137,14 @@ module Devices
130
137
  Pixel3XL,
131
138
  Pixel4,
132
139
  Pixel4XL,
133
- Pixel5
140
+ Pixel5,
141
+ Pixel6,
142
+ XiaomiRedmiNote11,
143
+ XiaomiRedmiNote11Pro,
144
+ GalaxyS22,
145
+ GalaxyS22Plus,
146
+ GalaxyTabS7,
147
+ GalaxyTabS8
134
148
  ]
135
149
  end
136
150
  end
@@ -49,10 +49,8 @@ module Applitools
49
49
  if args.empty?
50
50
  reset_ignore
51
51
  else
52
- value = convert_to_universal(args)
53
- value = { type: args[0], selector: args[1] } if value.nil?
54
- value = value[:selector] if value.is_a?(Hash) && (value[:type].to_s === 'id')
55
- ignored_regions << value
52
+ region = region_from_args(args)
53
+ ignored_regions << region if region
56
54
  end
57
55
  self
58
56
  end
@@ -81,33 +79,36 @@ module Applitools
81
79
  # @!parse def floating(region_or_element, bounds, left,top, right, bottom, padding); end;
82
80
 
83
81
  def floating(*args)
84
- requested_padding = get_requested_padding(args)
82
+ options = Applitools::Utils.extract_options!(args)
83
+ padding = options && options[:padding]
84
+ requested_padding = get_requested_padding(padding, args)
85
+ bounds = get_bounds(args)
85
86
  value = convert_to_universal(args)
86
87
  value = { type: args[0], selector: args[1] } if value.nil?
87
88
  value = value[:selector] if value.is_a?(Hash) && (value[:type].to_s === 'id')
88
- value = { region: value }.merge(requested_padding)
89
- floating_regions << value
89
+ region = { region: value }
90
+ region.merge!(bounds) if bounds != {}
91
+ region.merge!(padding: requested_padding) if requested_padding != {}
92
+ region.merge!(regionId: options[:region_id]) if options[:region_id]
93
+ floating_regions << region
90
94
  self
91
95
  end
92
96
 
93
97
  def layout(*args)
94
- return match_level(Applitools::MatchLevel::LAYOUT) if args.empty?
95
- region = process_region(*args)
96
- layout_regions << region
98
+ region = region_from_args(args)
99
+ layout_regions << region if region
97
100
  self
98
101
  end
99
102
 
100
103
  def content(*args)
101
- return match_level(Applitools::MatchLevel::CONTENT) if args.empty?
102
- region = process_region(*args)
103
- content_regions << region
104
+ region = region_from_args(args)
105
+ content_regions << region if region
104
106
  self
105
107
  end
106
108
 
107
109
  def strict(*args)
108
- return match_level(Applitools::MatchLevel::STRICT) if args.empty?
109
- region = process_region(*args)
110
- strict_regions << region
110
+ region = region_from_args(args)
111
+ strict_regions << region if region
111
112
  self
112
113
  end
113
114
 
@@ -344,6 +345,11 @@ module Applitools
344
345
  self
345
346
  end
346
347
 
348
+ def lazy_load(*args) # scroll_length, waiting_time, max_amount_to_scroll
349
+ options[:lazy_load] = args.is_a?(Hash) ? args : true
350
+ self
351
+ end
352
+
347
353
  private
348
354
 
349
355
  def reset_for_fullscreen
@@ -395,16 +401,41 @@ module Applitools
395
401
  driver.find_element(:xpath, xpath)
396
402
  end
397
403
 
398
- def get_requested_padding(args)
404
+ def get_requested_padding(padding, args)
405
+ return padding.to_hash if padding && padding.is_a?(Applitools::PaddingBounds)
406
+ return padding if padding && (padding.is_a?(Hash) || padding.is_a?(Numeric))
399
407
  if args.last.is_a? Applitools::PaddingBounds
400
408
  args.pop
401
- elsif args.last.is_a?(Applitools::FloatingBounds)
402
- args.pop.to_hash
409
+ # elsif args.last.is_a?(Applitools::FloatingBounds)
410
+ # args.pop.to_hash
411
+ else
412
+ {}
413
+ end
414
+ end
415
+
416
+ def get_bounds(args)
417
+ return args.pop.to_hash if args.last.is_a?(Applitools::FloatingBounds)
418
+ last4 = args.last(4)
419
+ if last4.size === 4 && last4.all? { |e| e.is_a?(Numeric) }
420
+ FloatingBounds.new(*last4).to_hash
403
421
  else
404
422
  {}
405
423
  end
406
424
  end
407
425
 
426
+ def region_from_args(args)
427
+ options = Applitools::Utils.extract_options!(args)
428
+ padding = options && options[:padding]
429
+ requested_padding = get_requested_padding(padding, args)
430
+ value = convert_to_universal(args)
431
+ value = { type: args[0], selector: args[1] } if value.nil?
432
+ value = value[:selector] if value.is_a?(Hash) && (value[:type].to_s === 'id')
433
+ return nil if value === {selector: nil, type: nil}
434
+ region = { region: value }
435
+ region.merge!(padding: requested_padding) if requested_padding != {}
436
+ region.merge!(regionId: options[:region_id]) if options[:region_id]
437
+ region
438
+ end
408
439
 
409
440
 
410
441
  def is_element?(el)
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: false
2
2
 
3
3
  module Applitools
4
- VERSION = '4.1.0'.freeze
5
- UNIVERSAL_VERSION = '2.7.2'.freeze
4
+ VERSION = '4.1.3'.freeze
5
+ UNIVERSAL_VERSION = '2.10.3'.freeze
6
6
  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: 4.1.0
4
+ version: 4.1.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: 2022-06-16 00:00:00.000000000 Z
11
+ date: 2022-08-04 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: 4.1.0
19
+ version: 4.1.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: 4.1.0
26
+ version: 4.1.3
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: selenium-webdriver
29
29
  requirement: !ruby/object:Gem::Requirement