eyes_selenium 6.3.8 → 6.4.0

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: 8b1157011e9db0b0ce9d29b8e8a177ecb76178c893b65060661316ad9c946db4
4
- data.tar.gz: b68107cf1f78fb2e54103f925ed7688315a741c436b4278abf74e5055f9fafaa
3
+ metadata.gz: c52fe814a6093be9affcf3a2f66cb15e4c032bdfe0cc30487b26f884dcd3eed1
4
+ data.tar.gz: ff25c05dd845d571e8092f646225316cce2dd1241a8ae383ba0543a9b7feb8c3
5
5
  SHA512:
6
- metadata.gz: 732e4877b8061c702dab466ee0b851f5e8cab8aaf224e8909032b4acdb8ef1f4f14ab6d7a74383a2d98a0eae77c4a26f8cca3b90bdc63d421b40ad5ac9149748
7
- data.tar.gz: a83e1322f1d49fef5fec889b1ca281f602d27fb7eeef7668552f2a8e52ccbd092e0a6df18189b621c91ae07f28593bbd7e114af5e3a75a0bf6e01293d0837f6d
6
+ metadata.gz: 67748661091fb003a30a46d643d3fd37878b60a7e39e1f6a0572c8544767f0f417f2874988bd14c4107cfcc7d39d545e862cb4f234065710af9e9dba322ae3df
7
+ data.tar.gz: 1e893aaf889bdcb15cb13ae6534953bc2b1f0fbf5f18b427e40310b02f116e16cec186f20f345a56ad2f5d53de205b85e764e5e5210fdaee6ca957cb5b60abbc
data/CHANGELOG.md CHANGED
@@ -1,5 +1,70 @@
1
1
  # Changelog
2
2
 
3
+ ## [6.4.0](https://github.com/Applitools-Dev/sdk/compare/ruby/eyes_selenium@6.3.8...ruby/eyes_selenium@6.4.0) (2024-10-21)
4
+
5
+
6
+ ### Features
7
+
8
+ * add chrome emulation devices ([#2559](https://github.com/Applitools-Dev/sdk/issues/2559)) ([0499aaf](https://github.com/Applitools-Dev/sdk/commit/0499aaf3bb809d2ac0105b4493e6f6bb8730ea3f))
9
+ * dynamic regions ([#2538](https://github.com/Applitools-Dev/sdk/issues/2538)) ([d8b5c48](https://github.com/Applitools-Dev/sdk/commit/d8b5c48fb35f9789c702447314dc72b4f415ade1))
10
+
11
+
12
+ ### Dependencies
13
+
14
+ * @applitools/snippets bumped to 2.5.1
15
+ #### Bug Fixes
16
+
17
+ * isStaleElement error ([#2567](https://github.com/Applitools-Dev/sdk/issues/2567)) ([2675086](https://github.com/Applitools-Dev/sdk/commit/2675086aa28589082249e2958942ee29a5f2ef12))
18
+ * @applitools/core-base bumped to 1.18.0
19
+ #### Features
20
+
21
+ * ability to download side by side with highlighted diffs (2419) ([#2530](https://github.com/Applitools-Dev/sdk/issues/2530)) ([e06ce69](https://github.com/Applitools-Dev/sdk/commit/e06ce699f30e9e444ac58dafdf5989ff1c96ca1c))
22
+ * dynamic regions ([#2538](https://github.com/Applitools-Dev/sdk/issues/2538)) ([d8b5c48](https://github.com/Applitools-Dev/sdk/commit/d8b5c48fb35f9789c702447314dc72b4f415ade1))
23
+ * setting up SCM information automatically ([#2542](https://github.com/Applitools-Dev/sdk/issues/2542)) ([696461a](https://github.com/Applitools-Dev/sdk/commit/696461af3f8e2e3ed94eb78fed5ead6233bd16b2))
24
+ * @applitools/driver bumped to 1.19.3
25
+
26
+ * @applitools/spec-driver-webdriver bumped to 1.1.15
27
+
28
+ * @applitools/spec-driver-selenium bumped to 1.5.86
29
+
30
+ * @applitools/spec-driver-puppeteer bumped to 1.4.15
31
+
32
+ * @applitools/screenshoter bumped to 3.9.0
33
+ #### Features
34
+
35
+ * capture status bar ([#2571](https://github.com/Applitools-Dev/sdk/issues/2571)) ([5e1c75e](https://github.com/Applitools-Dev/sdk/commit/5e1c75ef9cf34af80f08806a3bceaf06a94f2780))
36
+
37
+
38
+
39
+ * @applitools/nml-client bumped to 1.8.13
40
+
41
+ * @applitools/ec-client bumped to 1.9.9
42
+
43
+ * @applitools/core bumped to 4.21.0
44
+ #### Features
45
+
46
+ * add chrome emulation devices ([#2559](https://github.com/Applitools-Dev/sdk/issues/2559)) ([0499aaf](https://github.com/Applitools-Dev/sdk/commit/0499aaf3bb809d2ac0105b4493e6f6bb8730ea3f))
47
+ * capture status bar ([#2571](https://github.com/Applitools-Dev/sdk/issues/2571)) ([5e1c75e](https://github.com/Applitools-Dev/sdk/commit/5e1c75ef9cf34af80f08806a3bceaf06a94f2780))
48
+ * dynamic regions ([#2538](https://github.com/Applitools-Dev/sdk/issues/2538)) ([d8b5c48](https://github.com/Applitools-Dev/sdk/commit/d8b5c48fb35f9789c702447314dc72b4f415ade1))
49
+ * setting up SCM information automatically ([#2542](https://github.com/Applitools-Dev/sdk/issues/2542)) ([696461a](https://github.com/Applitools-Dev/sdk/commit/696461af3f8e2e3ed94eb78fed5ead6233bd16b2))
50
+
51
+
52
+ #### Bug Fixes
53
+
54
+ * don't remove offline execution folder after running ([654e195](https://github.com/Applitools-Dev/sdk/commit/654e195dd50dc7dab93dd907ec26d788549c6e81))
55
+
56
+
57
+
58
+ * eyes_universal bumped to 4.21.0
59
+
60
+ * eyes_core bumped to 6.4.0
61
+ #### Features
62
+
63
+ * dynamic regions ([#2538](https://github.com/Applitools-Dev/sdk/issues/2538)) ([d8b5c48](https://github.com/Applitools-Dev/sdk/commit/d8b5c48fb35f9789c702447314dc72b4f415ade1))
64
+
65
+
66
+
67
+
3
68
  ## [6.3.8](https://github.com/Applitools-Dev/sdk/compare/ruby/eyes_selenium@6.3.7...ruby/eyes_selenium@6.3.8) (2024-09-10)
4
69
 
5
70
 
@@ -25,7 +25,7 @@ Gem::Specification.new do |spec|
25
25
  spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
26
26
  spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
27
27
  spec.require_paths = %w(lib)
28
- spec.add_dependency 'eyes_core', "= 6.3.8"
28
+ spec.add_dependency 'eyes_core', "= 6.4.0"
29
29
  spec.add_dependency 'selenium-webdriver', '>= 3'
30
30
  spec.add_dependency 'css_parser'
31
31
  spec.add_dependency 'crass'
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Applitools
4
4
  module EyesSelenium
5
- VERSION = '6.3.8'.freeze
5
+ VERSION = '6.4.0'.freeze
6
6
  end
7
7
  end
@@ -8,9 +8,14 @@ module DeviceNameGenerated
8
8
  # Deprecated: Use DeviceName::IPhone_5SE instead.
9
9
  # deprecate_constant :IPhone_5S_E not allow to point to new version (
10
10
  IPhone_5S_E = 'iPhone 5/SE'.freeze
11
+ IPhone_SE_3rd_Gen = 'iPhone SE 3rd Gen'.freeze
11
12
  IPhone_6_7_8 = 'iPhone 6/7/8'.freeze
12
13
  IPhone_6_7_8_Plus = 'iPhone 6/7/8 Plus'.freeze
13
14
  IPhone_X = 'iPhone X'.freeze
15
+ IPhone_13_Mini = 'iPhone 13 Mini'.freeze
16
+ IPhone_14_Plus = 'iPhone 14 Plus'.freeze
17
+ IPhone_14_Pro = 'iPhone 14 Pro'.freeze
18
+ IPhone_15_Pro = 'iPhone 15 Pro'.freeze
14
19
  BlackBerry_Z30 = 'BlackBerry Z30'.freeze
15
20
  Nexus_4 = 'Nexus 4'.freeze
16
21
  Nexus_5 = 'Nexus 5'.freeze
@@ -31,6 +36,10 @@ module DeviceNameGenerated
31
36
  IPad_Mini = 'iPad Mini'.freeze
32
37
  IPad = 'iPad'.freeze
33
38
  IPad_Pro = 'iPad Pro'.freeze
39
+ IPad_8th_Gen = 'iPad 8th Gen'.freeze
40
+ IPad_10th_Gen = 'iPad 10th Gen'.freeze
41
+ IPad_Mini_4th_Gen = 'iPad Mini 4th Gen'.freeze
42
+ IPad_Mini_6th_Gen = 'iPad Mini 6th Gen'.freeze
34
43
  Blackberry_PlayBook = 'Blackberry PlayBook'.freeze
35
44
  Nexus_10 = 'Nexus 10'.freeze
36
45
  Nexus_7 = 'Nexus 7'.freeze
@@ -68,6 +77,13 @@ module DeviceNameGenerated
68
77
  Galaxy_Note_9 = 'Galaxy Note 9'.freeze
69
78
  Galaxy_Note_8 = 'Galaxy Note 8'.freeze
70
79
  Galaxy_Note_4 = 'Galaxy Note 4'.freeze
80
+ Galaxy_Tab_A_SM_T510 = 'Galaxy Tab A SM-T510'.freeze
81
+ Galaxy_Tab_A7_SM_T500 = 'Galaxy Tab A7 SM-T500'.freeze
82
+ Galaxy_Tab_S8 = 'Galaxy Tab S8'.freeze
83
+ Galaxy_Tab_A8 = 'Galaxy Tab A8'.freeze
84
+ Galaxy_S23 = 'Galaxy S23'.freeze
85
+ Galaxy_S23_Ultra = 'Galaxy S23 Ultra'.freeze
86
+ Galaxy_A52s = 'Galaxy A52s'.freeze
71
87
  Pixel_3 = 'Pixel 3'.freeze
72
88
  Pixel_3_XL = 'Pixel 3 XL'.freeze
73
89
  Pixel_4 = 'Pixel 4'.freeze
@@ -80,15 +96,26 @@ module DeviceNameGenerated
80
96
  Sony_Xperia_10_II = 'Sony Xperia 10 II'.freeze
81
97
  Huawei_Mate_50_Pro = 'Huawei Mate 50 Pro'.freeze
82
98
  Huawei_Matepad_11 = 'Huawei Matepad 11'.freeze
99
+ Huawei_P30 = 'Huawei P30'.freeze
100
+ Xiaomi_Mi_A3 = 'Xiaomi Mi A3'.freeze
101
+ Huawei_P40 = 'Huawei P40'.freeze
102
+ Xiaomi_Redmi_Note_8 = 'Xiaomi Redmi Note 8'.freeze
103
+ Xiaomi_Mi_Poco_X3_Pro = 'Xiaomi Mi Poco X3 Pro'.freeze
104
+ Xiaomi_Poco_X3 = 'Xiaomi Poco X3'.freeze
83
105
 
84
106
  def enum_values
85
107
  [
86
108
  IPhone_4,
87
109
  IPhone_5SE,
88
110
  IPhone_5S_E, # Deprecated: Use DeviceName::IPhone_5SE instead.
111
+ IPhone_SE_3rd_Gen,
89
112
  IPhone_6_7_8,
90
113
  IPhone_6_7_8_Plus,
91
114
  IPhone_X,
115
+ IPhone_13_Mini,
116
+ IPhone_14_Plus,
117
+ IPhone_14_Pro,
118
+ IPhone_15_Pro,
92
119
  BlackBerry_Z30,
93
120
  Nexus_4,
94
121
  Nexus_5,
@@ -109,6 +136,10 @@ module DeviceNameGenerated
109
136
  IPad_Mini,
110
137
  IPad,
111
138
  IPad_Pro,
139
+ IPad_8th_Gen,
140
+ IPad_10th_Gen,
141
+ IPad_Mini_4th_Gen,
142
+ IPad_Mini_6th_Gen,
112
143
  Blackberry_PlayBook,
113
144
  Nexus_10,
114
145
  Nexus_7,
@@ -146,6 +177,13 @@ module DeviceNameGenerated
146
177
  Galaxy_Note_9,
147
178
  Galaxy_Note_8,
148
179
  Galaxy_Note_4,
180
+ Galaxy_Tab_A_SM_T510,
181
+ Galaxy_Tab_A7_SM_T500,
182
+ Galaxy_Tab_S8,
183
+ Galaxy_Tab_A8,
184
+ Galaxy_S23,
185
+ Galaxy_S23_Ultra,
186
+ Galaxy_A52s,
149
187
  Pixel_3,
150
188
  Pixel_3_XL,
151
189
  Pixel_4,
@@ -158,6 +196,12 @@ module DeviceNameGenerated
158
196
  Sony_Xperia_10_II,
159
197
  Huawei_Mate_50_Pro,
160
198
  Huawei_Matepad_11,
199
+ Huawei_P30,
200
+ Xiaomi_Mi_A3,
201
+ Huawei_P40,
202
+ Xiaomi_Redmi_Note_8,
203
+ Xiaomi_Mi_Poco_X3_Pro,
204
+ Xiaomi_Poco_X3,
161
205
  ]
162
206
  end
163
207
  end
@@ -21,7 +21,7 @@ module Applitools
21
21
 
22
22
  attr_accessor :element, :frames, :region_to_check, :coordinate_type, :options, :ignored_regions,
23
23
  :floating_regions, :frame_or_element, :regions, :layout_regions, :content_regions,
24
- :strict_regions, :accessibility_regions, :convert_coordinates_block
24
+ :strict_regions, :accessibility_regions, :dynamic_regions, :convert_coordinates_block
25
25
 
26
26
  private :frame_or_element, :frame_or_element=
27
27
 
@@ -153,6 +153,8 @@ module Applitools
153
153
  replace_element(original_region, new_region, ignored_regions)
154
154
  when :accessibility_regions
155
155
  replace_element(original_region, new_region, accessibility_regions)
156
+ when :dynamic_regions
157
+ replace_element(original_region, new_region, dynamic_regions)
156
158
  end
157
159
  end
158
160
 
@@ -259,38 +261,75 @@ module Applitools
259
261
  padding_proc = proc { |region| Applitools::AccessibilityRegion.new(region, options[:type]) }
260
262
 
261
263
  accessibility_regions << case args.first
262
- when ::Selenium::WebDriver::Element
263
- proc do |driver, return_element = false|
264
- element = applitools_element_from_selenium_element(driver, args.first)
265
- next element, padding_proc if return_element
266
- padding_proc.call(element)
267
- end
268
- when Applitools::Selenium::Element
269
- proc do |_driver, return_element = false|
270
- next args.first, padding_proc if return_element
271
- padding_proc.call(args.first)
272
- end
273
- when Applitools::Region
274
- Applitools::AccessibilityRegion.new(
275
- args.first, options[:type]
276
- )
277
- when String
278
- proc do |driver, return_element = false|
279
- element = driver.find_element(name_or_id: args.first)
280
- next element, padding_proc if return_element
281
- padding_proc.call(element)
282
- end
264
+ when ::Selenium::WebDriver::Element
265
+ proc do |driver, return_element = false|
266
+ element = applitools_element_from_selenium_element(driver, args.first)
267
+ next element, padding_proc if return_element
268
+ padding_proc.call(element)
269
+ end
270
+ when Applitools::Selenium::Element
271
+ proc do |_driver, return_element = false|
272
+ next args.first, padding_proc if return_element
273
+ padding_proc.call(args.first)
274
+ end
275
+ when Applitools::Region
276
+ Applitools::AccessibilityRegion.new(
277
+ args.first, options[:type]
278
+ )
279
+ when String
280
+ proc do |driver, return_element = false|
281
+ element = driver.find_element(name_or_id: args.first)
282
+ next element, padding_proc if return_element
283
+ padding_proc.call(element)
284
+ end
285
+ when :css
286
+ { region: args[1], type: options[:type] }
287
+ else
288
+ proc do |driver, return_element = false|
289
+ elements = driver.find_elements(*args)
290
+ next elements, padding_proc if return_element
291
+ elements.map { |e| padding_proc.call(e) }
292
+ end
293
+ end
294
+ self
295
+ end
296
+
297
+ def dynamic(*args)
298
+ options = Applitools::Utils.extract_options! args
299
+ handle_frames
300
+ padding_proc = proc { |region| Applitools::DynamicRegion.new(region, options[:type]) }
301
+
302
+ dynamic_regions << case args.first
303
+ when ::Selenium::WebDriver::Element
304
+ proc do |driver, return_element = false|
305
+ element = applitools_element_from_selenium_element(driver, args.first)
306
+ next element, padding_proc if return_element
307
+ padding_proc.call(element)
308
+ end
309
+ when Applitools::Selenium::Element
310
+ proc do |_driver, return_element = false|
311
+ next args.first, padding_proc if return_element
312
+ padding_proc.call(args.first)
313
+ end
314
+ when Applitools::Region
315
+ Applitools::DynamicRegion.new(
316
+ args.first, options[:type]
317
+ )
318
+ when String
319
+ proc do |driver, return_element = false|
320
+ element = driver.find_element(name_or_id: args.first)
321
+ next element, padding_proc if return_element
322
+ padding_proc.call(element)
323
+ end
283
324
  when :css
284
- # (:css, '.ignore', type: 'LargeText')
285
325
  { region: args[1], type: options[:type] }
286
- else
287
- proc do |driver, return_element = false|
288
- elements = driver.find_elements(*args)
289
- next elements, padding_proc if return_element
290
- elements.map { |e| padding_proc.call(e) }
291
- end
292
-
293
- end
326
+ else
327
+ proc do |driver, return_element = false|
328
+ elements = driver.find_elements(*args)
329
+ next elements, padding_proc if return_element
330
+ elements.map { |e| padding_proc.call(e) }
331
+ end
332
+ end
294
333
  self
295
334
  end
296
335
 
@@ -365,6 +404,7 @@ module Applitools
365
404
  reset_layout_regions
366
405
  reset_strict_regions
367
406
  reset_accessibility_regions
407
+ reset_dynamic_regions
368
408
  options[:stitch_content] = nil
369
409
  options[:timeout] = nil
370
410
  options[:trim] = false
@@ -374,6 +414,10 @@ module Applitools
374
414
  self.accessibility_regions = []
375
415
  end
376
416
 
417
+ def reset_dynamic_regions
418
+ self.dynamic_regions = []
419
+ end
420
+
377
421
  def reset_ignore
378
422
  self.ignored_regions = []
379
423
  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: 6.3.8
4
+ version: 6.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Applitools Team
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-09-10 00:00:00.000000000 Z
11
+ date: 2024-10-21 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: 6.3.8
19
+ version: 6.4.0
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: 6.3.8
26
+ version: 6.4.0
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: selenium-webdriver
29
29
  requirement: !ruby/object:Gem::Requirement