eyes_selenium 6.3.8 → 6.4.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 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