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 +4 -4
- data/CHANGELOG.md +65 -0
- data/eyes_selenium.gemspec +1 -1
- data/lib/applitools/eyes_selenium/version.rb +1 -1
- data/lib/applitools/selenium/device_name_generated.rb +44 -0
- data/lib/applitools/selenium/target.rb +75 -31
- metadata +4 -4
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: c52fe814a6093be9affcf3a2f66cb15e4c032bdfe0cc30487b26f884dcd3eed1
|
|
4
|
+
data.tar.gz: ff25c05dd845d571e8092f646225316cce2dd1241a8ae383ba0543a9b7feb8c3
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
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
|
|
data/eyes_selenium.gemspec
CHANGED
|
@@ -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.
|
|
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'
|
|
@@ -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
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
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
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
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.
|
|
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-
|
|
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.
|
|
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.
|
|
26
|
+
version: 6.4.0
|
|
27
27
|
- !ruby/object:Gem::Dependency
|
|
28
28
|
name: selenium-webdriver
|
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|