eyes_selenium 4.1.0 → 4.1.3

Sign up to get free protection for your applications and to get access to all the features.
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