eyes_selenium 3.18.4 → 4.6.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 +5 -5
- data/lib/applitools/selenium/browser_types.rb +12 -10
- data/lib/applitools/selenium/browsers_info.rb +8 -0
- data/lib/applitools/selenium/concerns/selenium_eyes.rb +2 -6
- data/lib/applitools/selenium/configuration.rb +11 -2
- data/lib/applitools/selenium/devices.rb +133 -24
- data/lib/applitools/selenium/driver.rb +21 -1
- data/lib/applitools/selenium/eyes.rb +2 -2
- data/lib/applitools/selenium/full_page_capture_algorithm.rb +1 -1
- data/lib/applitools/selenium/scripts/templates.rb +11 -11
- data/lib/applitools/selenium/selenium_eyes.rb +54 -49
- data/lib/applitools/selenium/target.rb +174 -134
- data/lib/applitools/selenium/visual_grid/android_device_info.rb +65 -0
- data/lib/applitools/selenium/visual_grid/android_device_name.rb +45 -0
- data/lib/applitools/selenium/visual_grid/chrome_emulation_info.rb +4 -0
- data/lib/applitools/selenium/visual_grid/desktop_browser_info.rb +6 -0
- data/lib/applitools/selenium/visual_grid/dom_snapshot_script.rb +2 -1
- data/lib/applitools/selenium/visual_grid/ios_device_info.rb +12 -0
- data/lib/applitools/selenium/visual_grid/ios_device_name.rb +17 -1
- data/lib/applitools/selenium/visual_grid/thread_pool.rb +2 -1
- data/lib/applitools/selenium/visual_grid/vg_resource.rb +7 -6
- data/lib/applitools/selenium/visual_grid/visual_grid_eyes.rb +108 -56
- data/lib/applitools/selenium/visual_grid/visual_grid_runner.rb +4 -0
- data/lib/applitools/version.rb +4 -1
- data/lib/eyes_selenium.rb +17 -0
- metadata +9 -23
- data/lib/applitools/selenium/scripts/process_page_and_poll.rb +0 -17
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 569cec349c48466c12fec616dcf7ee0519b32f9bc94b671ad5238b0d21e3df42
|
4
|
+
data.tar.gz: 2dd45a62281bbe48aa746fdc1a7a82b7a8a8eca6e33c2a3c2faad1d1c901a7e5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c61cd245cefc145d7db8016c0cf81cd2a85c1d0bf3dca3bb5718063efcd927750dfe632cccfe5271ccb586b30d6c143be7b8495418341cc9970bffb98bf5c59e
|
7
|
+
data.tar.gz: 0ea56d6dac57d740df69252f038e81fa37bacb9cf9a4947c0aa9c0773cc10621d77ceedb9105e0b499be951c5adf163bdcc63dc87ee567eb1333031c88d2fb29
|
@@ -12,21 +12,22 @@ module BrowserTypes
|
|
12
12
|
end
|
13
13
|
module BrowserType
|
14
14
|
extend self
|
15
|
-
CHROME = :'chrome
|
16
|
-
CHROME_ONE_VERSION_BACK = :'chrome-
|
17
|
-
CHROME_TWO_VERSIONS_BACK = :'chrome-
|
15
|
+
CHROME = :'chrome'
|
16
|
+
CHROME_ONE_VERSION_BACK = :'chrome-one-version-back'
|
17
|
+
CHROME_TWO_VERSIONS_BACK = :'chrome-two-versions-back'
|
18
18
|
|
19
|
-
FIREFOX = :'firefox
|
20
|
-
FIREFOX_ONE_VERSION_BACK = :'firefox-
|
21
|
-
FIREFOX_TWO_VERSIONS_BACK = :'firefox-
|
19
|
+
FIREFOX = :'firefox'
|
20
|
+
FIREFOX_ONE_VERSION_BACK = :'firefox-one-version-back'
|
21
|
+
FIREFOX_TWO_VERSIONS_BACK = :'firefox-two-versions-back'
|
22
22
|
|
23
|
-
SAFARI = :'safari
|
24
|
-
SAFARI_ONE_VERSION_BACK = :'safari-
|
25
|
-
SAFARI_TWO_VERSIONS_BACK = :'safari-
|
23
|
+
SAFARI = :'safari'
|
24
|
+
SAFARI_ONE_VERSION_BACK = :'safari-one-version-back'
|
25
|
+
SAFARI_TWO_VERSIONS_BACK = :'safari-two-versions-back'
|
26
26
|
IOS_SAFARI = :safari
|
27
27
|
|
28
28
|
EDGE_CHROMIUM = :'edgechromium'
|
29
|
-
EDGE_CHROMIUM_ONE_VERSION_BACK = :'edgechromium-
|
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
|
@@ -50,12 +50,8 @@ module Applitools
|
|
50
50
|
fully = args.select { |a| a.is_a?(TrueClass) || a.is_a?(FalseClass) }.first
|
51
51
|
target = Applitools::Selenium::Target.window.tap do |t|
|
52
52
|
t.timeout(match_timeout || USE_DEFAULT_MATCH_TIMEOUT)
|
53
|
-
if
|
54
|
-
|
55
|
-
else
|
56
|
-
t.fully(force_full_page_screenshot)
|
57
|
-
end
|
58
|
-
t.fully(fully) unless fully.nil?
|
53
|
+
# fully = force_full_page_screenshot if fully.nil?
|
54
|
+
t.fully(fully) if !fully.nil?
|
59
55
|
end
|
60
56
|
check(tag, target)
|
61
57
|
end
|
@@ -8,9 +8,9 @@ module Applitools
|
|
8
8
|
class Configuration < Applitools::EyesBaseConfiguration
|
9
9
|
DEFAULT_CONFIG = proc do
|
10
10
|
{
|
11
|
-
force_full_page_screenshot: false,
|
11
|
+
# force_full_page_screenshot: false,
|
12
12
|
wait_before_screenshots: 0.1,
|
13
|
-
stitch_mode: Applitools::Selenium::StitchModes::CSS,
|
13
|
+
# stitch_mode: Applitools::Selenium::StitchModes::CSS,
|
14
14
|
hide_scrollbars: true,
|
15
15
|
hide_caret: false,
|
16
16
|
browsers_info: Applitools::Selenium::BrowsersInfo.new,
|
@@ -26,6 +26,7 @@ module Applitools
|
|
26
26
|
|
27
27
|
boolean_field :force_full_page_screenshot
|
28
28
|
int_field :wait_before_screenshots
|
29
|
+
int_field :wait_before_capture
|
29
30
|
enum_field :stitch_mode, Applitools::Selenium::StitchModes.enum_values
|
30
31
|
boolean_field :hide_scrollbars
|
31
32
|
boolean_field :hide_caret
|
@@ -84,6 +85,14 @@ module Applitools
|
|
84
85
|
add_browser emu
|
85
86
|
end
|
86
87
|
|
88
|
+
def add_mobile_device(mobile_device_info)
|
89
|
+
add_mobile_devices(mobile_device_info)
|
90
|
+
end
|
91
|
+
|
92
|
+
def add_mobile_devices(mobile_device_infos)
|
93
|
+
add_browsers(mobile_device_infos)
|
94
|
+
end
|
95
|
+
|
87
96
|
def viewport_size
|
88
97
|
user_defined_vp = super
|
89
98
|
user_defined_vp = nil if user_defined_vp.respond_to?(:square) && user_defined_vp.square == 0
|
@@ -1,45 +1,154 @@
|
|
1
1
|
# frozen_string_literal: false
|
2
2
|
module Devices
|
3
3
|
extend self
|
4
|
+
BlackberryPlayBook = 'Blackberry PlayBook'.freeze
|
5
|
+
BlackBerryZ30 = 'BlackBerry Z30'.freeze
|
6
|
+
GalaxyA5 = 'Galaxy A5'.freeze
|
7
|
+
GalaxyNote10 = 'Galaxy Note 10'.freeze
|
8
|
+
GalaxyNote10Plus = 'Galaxy Note 10 Plus'.freeze
|
9
|
+
GalaxyNote2 = 'Galaxy Note 2'.freeze
|
10
|
+
GalaxyNote3 = 'Galaxy Note 3'.freeze
|
11
|
+
GalaxyNote4 = 'Galaxy Note 4'.freeze
|
12
|
+
# GalaxyNote8 = 'Galaxy Note 8'.freeze
|
13
|
+
GalaxyNote9 = 'Galaxy Note 9'.freeze
|
14
|
+
GalaxyS3 = 'Galaxy S3'.freeze
|
15
|
+
GalaxyS5 = 'Galaxy S5'.freeze
|
16
|
+
# GalaxyS8 = 'Galaxy S8'.freeze
|
17
|
+
# GalaxyS8Plus = 'Galaxy S8 Plus'.freeze
|
18
|
+
GalaxyS9 = 'Galaxy S9'.freeze
|
19
|
+
GalaxyS9Plus = 'Galaxy S9 Plus'.freeze
|
20
|
+
GalaxyS10 = 'Galaxy S10'.freeze
|
21
|
+
GalaxyS10Plus = 'Galaxy S10 Plus'.freeze
|
22
|
+
GalaxyS20 = 'Galaxy S20'.freeze
|
23
|
+
IPad = 'iPad'.freeze
|
24
|
+
IPad6thGen = 'iPad 6th Gen'.freeze
|
25
|
+
IPad7thGen = 'iPad 7th Gen'.freeze
|
26
|
+
IPadAir2 = 'iPad Air 2'.freeze
|
27
|
+
IPadMini = 'iPad Mini'.freeze
|
28
|
+
IPadPro = 'iPad Pro'.freeze
|
29
|
+
IPhone11 = 'iPhone 11'.freeze
|
30
|
+
IPhone11Pro = 'iPhone 11 Pro'.freeze
|
31
|
+
IPhone11ProMax = 'iPhone 11 Pro Max'.freeze
|
4
32
|
IPhone4 = 'iPhone 4'.freeze
|
5
33
|
IPhone5SE = 'iPhone 5/SE'.freeze
|
6
34
|
IPhone678 = 'iPhone 6/7/8'.freeze
|
7
35
|
IPhone678Plus = 'iPhone 6/7/8 Plus'.freeze
|
8
36
|
IPhoneX = 'iPhone X'.freeze
|
9
|
-
|
10
|
-
|
11
|
-
|
37
|
+
IPhoneXR = 'iPhone XR'.freeze
|
38
|
+
IPhoneXS = 'iPhone XS'.freeze
|
39
|
+
IPhoneXSMax = 'iPhone XS Max'.freeze
|
40
|
+
IPhone14 = 'iPhone 14'.freeze
|
41
|
+
IPhone14ProMax = 'iPhone 14 Pro Max'.freeze
|
42
|
+
KindleFireHDX = 'Kindle Fire HDX'.freeze
|
43
|
+
LaptopWithHIDPIScreen = 'Laptop with HiDPI screen'.freeze
|
44
|
+
LaptopWithMDPIScreen = 'Laptop with MDPI screen'.freeze
|
45
|
+
LaptopWithTouch = 'Laptop with touch'.freeze
|
46
|
+
LGG6 = 'LG G6'.freeze
|
47
|
+
LGOptimusL70 = 'LG Optimus L70'.freeze
|
48
|
+
MicrosoftLumia550 = 'Microsoft Lumia 550'.freeze
|
49
|
+
MicrosoftLumia950 = 'Microsoft Lumia 950'.freeze
|
50
|
+
Nexus10 = 'Nexus 10'.freeze
|
12
51
|
Nexus4 = 'Nexus 4'.freeze
|
13
52
|
Nexus5 = 'Nexus 5'.freeze
|
14
53
|
Nexus5X = 'Nexus 5X'.freeze
|
15
54
|
Nexus6 = 'Nexus 6'.freeze
|
16
55
|
Nexus6P = 'Nexus 6P'.freeze
|
56
|
+
Nexus7 = 'Nexus 7'.freeze
|
57
|
+
|
58
|
+
NokiaLumia520 = 'Nokia Lumia 520'.freeze
|
59
|
+
NokiaN9 = 'Nokia N9'.freeze
|
60
|
+
OnePlus7T = 'OnePlus 7T'.freeze
|
61
|
+
OnePlus7TPro = 'OnePlus 7T Pro'.freeze
|
62
|
+
# OnePlus8 = 'OnePlus 8'.freeze
|
63
|
+
# OnePlus8Pro = 'OnePlus 8 Pro'.freeze
|
17
64
|
Pixel2 = 'Pixel 2'.freeze
|
18
65
|
Pixel2XL = 'Pixel 2 XL'.freeze
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
GalaxyNote3 = 'Galaxy Note 3'.freeze
|
32
|
-
GalaxyNote2 = 'Galaxy Note II'.freeze
|
33
|
-
LaptopWithTouch = 'Laptop with touch'.freeze
|
34
|
-
LaptopWithHDPIScreen = 'Laptop with HiDPI screen'.freeze
|
35
|
-
LaptopWithMDPIScreen = 'Laptop with MDPI screen'.freeze
|
66
|
+
Pixel3 = 'Pixel 3'.freeze
|
67
|
+
Pixel3XL = 'Pixel 3 XL'.freeze
|
68
|
+
Pixel4 = 'Pixel 4'.freeze
|
69
|
+
Pixel4XL = 'Pixel 4 XL'.freeze
|
70
|
+
Pixel5 = 'Pixel 5'.freeze
|
71
|
+
Pixel6 = 'Pixel 6'.freeze
|
72
|
+
XiaomiRedmiNote11 = 'Xiaomi Redmi Note 11'.freeze
|
73
|
+
XiaomiRedmiNote11Pro = 'Xiaomi Redmi Note 11 Pro'.freeze
|
74
|
+
GalaxyS22 = 'Galaxy S22'.freeze
|
75
|
+
GalaxyS22Plus = 'Galaxy S22 Plus'.freeze
|
76
|
+
GalaxyTabS7 = 'Galaxy Tab S7'.freeze
|
77
|
+
GalaxyTabS8 = 'Galaxy Tab S8'.freeze
|
36
78
|
|
37
79
|
def enum_values
|
38
80
|
[
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
81
|
+
BlackberryPlayBook,
|
82
|
+
BlackBerryZ30,
|
83
|
+
GalaxyA5,
|
84
|
+
GalaxyNote10,
|
85
|
+
GalaxyNote10Plus,
|
86
|
+
GalaxyNote2,
|
87
|
+
GalaxyNote3,
|
88
|
+
GalaxyNote4,
|
89
|
+
# GalaxyNote8,
|
90
|
+
GalaxyNote9,
|
91
|
+
GalaxyS3,
|
92
|
+
GalaxyS5,
|
93
|
+
# GalaxyS8,
|
94
|
+
# GalaxyS8Plus,
|
95
|
+
GalaxyS9,
|
96
|
+
GalaxyS9Plus,
|
97
|
+
GalaxyS10,
|
98
|
+
GalaxyS10Plus,
|
99
|
+
GalaxyS20,
|
100
|
+
IPad,
|
101
|
+
IPad6thGen,
|
102
|
+
IPad7thGen,
|
103
|
+
IPadAir2,
|
104
|
+
IPadMini,
|
105
|
+
IPadPro,
|
106
|
+
IPhone11,
|
107
|
+
IPhone11Pro,
|
108
|
+
IPhone11ProMax,
|
109
|
+
IPhone4,
|
110
|
+
IPhone5SE,
|
111
|
+
IPhone678,
|
112
|
+
IPhone678Plus,
|
113
|
+
IPhoneX,
|
114
|
+
IPhoneXR,
|
115
|
+
IPhoneXS,
|
116
|
+
IPhoneXSMax,
|
117
|
+
IPhone14,
|
118
|
+
IPhone14ProMax,
|
119
|
+
KindleFireHDX,
|
120
|
+
LaptopWithHIDPIScreen,
|
121
|
+
LaptopWithMDPIScreen,
|
122
|
+
LaptopWithTouch,
|
123
|
+
LGG6,
|
124
|
+
LGOptimusL70,
|
125
|
+
MicrosoftLumia550,
|
126
|
+
MicrosoftLumia950,
|
127
|
+
Nexus10,
|
128
|
+
Nexus4,
|
129
|
+
Nexus5,
|
130
|
+
Nexus5X,
|
131
|
+
Nexus6,
|
132
|
+
Nexus6P,
|
133
|
+
Nexus7,
|
134
|
+
NokiaLumia520,
|
135
|
+
NokiaN9,
|
136
|
+
OnePlus7T,
|
137
|
+
OnePlus7TPro,
|
138
|
+
Pixel2,
|
139
|
+
Pixel2XL,
|
140
|
+
Pixel3,
|
141
|
+
Pixel3XL,
|
142
|
+
Pixel4,
|
143
|
+
Pixel4XL,
|
144
|
+
Pixel5,
|
145
|
+
Pixel6,
|
146
|
+
XiaomiRedmiNote11,
|
147
|
+
XiaomiRedmiNote11Pro,
|
148
|
+
GalaxyS22,
|
149
|
+
GalaxyS22Plus,
|
150
|
+
GalaxyTabS7,
|
151
|
+
GalaxyTabS8
|
43
152
|
]
|
44
153
|
end
|
45
154
|
end
|
@@ -19,7 +19,7 @@ module Applitools::Selenium
|
|
19
19
|
FINDERS = {
|
20
20
|
class: 'class name',
|
21
21
|
class_name: 'class name',
|
22
|
-
css: 'css
|
22
|
+
css: 'css',
|
23
23
|
id: 'id',
|
24
24
|
link: 'link text',
|
25
25
|
link_text: 'link text',
|
@@ -227,6 +227,22 @@ module Applitools::Selenium
|
|
227
227
|
)
|
228
228
|
end
|
229
229
|
|
230
|
+
def universal_driver_config
|
231
|
+
if respond_to?(:session_id)
|
232
|
+
{
|
233
|
+
serverUrl: server_url,
|
234
|
+
sessionId: session_id,
|
235
|
+
capabilities: capabilities.as_json
|
236
|
+
}
|
237
|
+
else
|
238
|
+
{
|
239
|
+
serverUrl: server_url,
|
240
|
+
sessionId: bridge.session_id,
|
241
|
+
capabilities: capabilities.as_json
|
242
|
+
}
|
243
|
+
end
|
244
|
+
end
|
245
|
+
|
230
246
|
private
|
231
247
|
|
232
248
|
attr_reader :cached_default_content_viewport_size
|
@@ -245,6 +261,10 @@ module Applitools::Selenium
|
|
245
261
|
@driver ||= __getobj__
|
246
262
|
end
|
247
263
|
|
264
|
+
def server_url
|
265
|
+
bridge.http.send(:server_url).to_s
|
266
|
+
end
|
267
|
+
|
248
268
|
def extract_args(args)
|
249
269
|
case args.size
|
250
270
|
when 2
|
@@ -6,11 +6,11 @@ module Applitools
|
|
6
6
|
options = Applitools::Utils.extract_options!(args)
|
7
7
|
server_url = options.delete(:server_url)
|
8
8
|
server_url = args.first unless server_url
|
9
|
-
runner = options.delete(:visual_grid_runner) || options.delete(:runner)
|
9
|
+
runner = options.delete(:visual_grid_runner) || options.delete(:runner) || Applitools::ClassicRunner.new
|
10
10
|
if runner.is_a? Applitools::Selenium::VisualGridRunner
|
11
11
|
super Applitools::Selenium::VisualGridEyes.new(runner, server_url)
|
12
12
|
else
|
13
|
-
super Applitools::Selenium::SeleniumEyes.new(server_url, runner: runner
|
13
|
+
super Applitools::Selenium::SeleniumEyes.new(server_url, runner: runner)
|
14
14
|
end
|
15
15
|
end
|
16
16
|
end
|
@@ -112,7 +112,7 @@ module Applitools::Selenium
|
|
112
112
|
|
113
113
|
logger.info "Creating stitchedImage container. Size: #{entire_size}"
|
114
114
|
|
115
|
-
stitched_image = ::ChunkyPNG::Image.new(entire_size.width, entire_size.height)
|
115
|
+
# stitched_image = ::ChunkyPNG::Image.new(entire_size.width, entire_size.height)
|
116
116
|
logger.info 'Done! Adding initial screenshot..'
|
117
117
|
logger.info "Initial part:(0,0) [#{image.width} x #{image.height}]"
|
118
118
|
|
@@ -18,17 +18,17 @@ module Applitools
|
|
18
18
|
end
|
19
19
|
|
20
20
|
# JS_FILES_PATH = File.join(Applitools::JS_PATH, '@applitools', 'dom-snapshot', 'dist')
|
21
|
-
PROCESS_PAGE_AND_POLL_RB = <<"SCRIPT"
|
22
|
-
module Applitools
|
23
|
-
|
24
|
-
|
25
|
-
PROCESS_PAGE_AND_POLL = <<'END'
|
26
|
-
#{get_script_by_file_name('processPageAndSerializePoll')}
|
27
|
-
END
|
28
|
-
|
29
|
-
|
30
|
-
end
|
31
|
-
SCRIPT
|
21
|
+
# PROCESS_PAGE_AND_POLL_RB = <<"SCRIPT"
|
22
|
+
# module Applitools
|
23
|
+
# module Selenium
|
24
|
+
# module Scripts
|
25
|
+
# PROCESS_PAGE_AND_POLL = <<'END'
|
26
|
+
# #{get_script_by_file_name('processPageAndSerializePoll')}
|
27
|
+
# END
|
28
|
+
# end
|
29
|
+
# end
|
30
|
+
# end
|
31
|
+
# SCRIPT
|
32
32
|
end
|
33
33
|
end
|
34
34
|
end
|
@@ -1,5 +1,6 @@
|
|
1
1
|
# frozen_string_literal: false
|
2
2
|
|
3
|
+
|
3
4
|
module Applitools::Selenium
|
4
5
|
# The main API gateway for the SDK
|
5
6
|
class SeleniumEyes < Applitools::EyesBase
|
@@ -12,7 +13,7 @@ module Applitools::Selenium
|
|
12
13
|
|
13
14
|
DEFAULT_WAIT_BEFORE_SCREENSHOTS = 0.1 # Seconds
|
14
15
|
|
15
|
-
DEFAULT_STITCHING_OVERLAP =
|
16
|
+
DEFAULT_STITCHING_OVERLAP = 0 # Pixels
|
16
17
|
|
17
18
|
ENTIRE_ELEMENT_SCREENSHOT = 0
|
18
19
|
|
@@ -56,16 +57,7 @@ module Applitools::Selenium
|
|
56
57
|
# @param [Applitools::Selenium::Driver] driver The driver instance.
|
57
58
|
# @param [Hash] viewport_size The required browser's viewport size.
|
58
59
|
def set_viewport_size(driver, viewport_size)
|
59
|
-
|
60
|
-
Applitools::ArgumentGuard.not_nil(viewport_size, 'viewport_size')
|
61
|
-
Applitools::ArgumentGuard.is_a?(viewport_size, 'viewport_size', Applitools::RectangleSize)
|
62
|
-
begin
|
63
|
-
Applitools::Utils::EyesSeleniumUtils.set_viewport_size eyes_driver(driver), viewport_size
|
64
|
-
rescue => e
|
65
|
-
Applitools::EyesLogger.error e.class
|
66
|
-
Applitools::EyesLogger.error e.message
|
67
|
-
raise Applitools::EyesError.new 'Failed to set viewport size!'
|
68
|
-
end
|
60
|
+
super
|
69
61
|
end
|
70
62
|
end
|
71
63
|
|
@@ -100,7 +92,7 @@ module Applitools::Selenium
|
|
100
92
|
:full_page_capture_algorithm_left_top_offset, :screenshot_type, :send_dom, :use_dom, :enable_patterns,
|
101
93
|
:utils,
|
102
94
|
:config
|
103
|
-
|
95
|
+
attr_accessor :driver
|
104
96
|
|
105
97
|
def_delegators 'Applitools::EyesLogger', :logger, :log_handler, :log_handler=
|
106
98
|
def_delegators 'config', *Applitools::Selenium::Configuration.methods_to_delegate
|
@@ -116,7 +108,7 @@ module Applitools::Selenium
|
|
116
108
|
self.base_agent_id = "eyes.selenium.ruby/#{Applitools::VERSION}".freeze
|
117
109
|
self.check_frame_or_element = false
|
118
110
|
self.region_to_check = nil
|
119
|
-
self.force_full_page_screenshot = false
|
111
|
+
# self.force_full_page_screenshot = false
|
120
112
|
self.dont_get_title = false
|
121
113
|
self.device_pixel_ratio = UNKNOWN_DEVICE_PIXEL_RATIO
|
122
114
|
self.stitch_mode = Applitools::STITCH_MODE[:scroll]
|
@@ -162,41 +154,43 @@ module Applitools::Selenium
|
|
162
154
|
# @return [Applitools::Selenium::Driver] A wrapped web driver which enables Eyes
|
163
155
|
# trigger recording and frame handling
|
164
156
|
def open(options = {})
|
165
|
-
|
166
|
-
options
|
167
|
-
|
168
|
-
Applitools::
|
169
|
-
#
|
170
|
-
|
171
|
-
|
172
|
-
|
173
|
-
|
174
|
-
|
175
|
-
|
176
|
-
|
177
|
-
|
178
|
-
|
179
|
-
|
180
|
-
|
181
|
-
|
182
|
-
|
183
|
-
|
184
|
-
|
185
|
-
|
186
|
-
|
187
|
-
|
188
|
-
|
189
|
-
|
190
|
-
|
191
|
-
|
192
|
-
|
193
|
-
|
194
|
-
|
195
|
-
|
196
|
-
|
197
|
-
|
198
|
-
|
199
|
-
|
157
|
+
# runner.add_batch(batch.id) { runner.close_batch(batch.id) } if runner
|
158
|
+
universal_open(options)
|
159
|
+
# original_driver = options.delete(:driver)
|
160
|
+
# options[:viewport_size] = Applitools::RectangleSize.from_any_argument options[:viewport_size] if
|
161
|
+
# options[:viewport_size]
|
162
|
+
# Applitools::ArgumentGuard.not_nil original_driver, 'options[:driver]'
|
163
|
+
# # Applitools::ArgumentGuard.hash options, 'open(options)', [:app_name, :test_name]
|
164
|
+
#
|
165
|
+
# if disabled?
|
166
|
+
# logger.info('Ignored')
|
167
|
+
# return driver
|
168
|
+
# end
|
169
|
+
#
|
170
|
+
# @driver = self.class.eyes_driver(original_driver, self)
|
171
|
+
# perform_driver_specific_settings(original_driver)
|
172
|
+
#
|
173
|
+
# self.device_pixel_ratio = UNKNOWN_DEVICE_PIXEL_RATIO
|
174
|
+
# self.position_provider = self.class.position_provider(
|
175
|
+
# stitch_mode, driver, disable_horizontal_scrolling, disable_vertical_scrolling, explicit_entire_size
|
176
|
+
# )
|
177
|
+
#
|
178
|
+
# self.eyes_screenshot_factory = lambda do |image|
|
179
|
+
# Applitools::Selenium::ViewportScreenshot.new(
|
180
|
+
# image, driver: @driver, force_offset: position_provider.force_offset
|
181
|
+
# )
|
182
|
+
# end
|
183
|
+
#
|
184
|
+
# open_base(options) do
|
185
|
+
# self.viewport_size = get_viewport_size if force_driver_resolution_as_viewport_size
|
186
|
+
# ensure_running_session
|
187
|
+
# end
|
188
|
+
# if runner
|
189
|
+
# runner.add_batch(batch.id) do
|
190
|
+
# server_connector.close_batch(batch.id)
|
191
|
+
# end
|
192
|
+
# end
|
193
|
+
# @driver
|
200
194
|
end
|
201
195
|
|
202
196
|
def perform_driver_specific_settings(original_driver)
|
@@ -219,7 +213,15 @@ module Applitools::Selenium
|
|
219
213
|
# @!visibility private
|
220
214
|
def get_viewport_size(web_driver = driver)
|
221
215
|
Applitools::ArgumentGuard.not_nil 'web_driver', web_driver
|
222
|
-
self.utils.extract_viewport_size(driver)
|
216
|
+
# self.utils.extract_viewport_size(driver)
|
217
|
+
driver_config_json = web_driver.universal_driver_config
|
218
|
+
|
219
|
+
Applitools::EyesLogger.debug 'extract_viewport_size()'
|
220
|
+
viewport_size = runner.universal_client.core_get_viewport_size(driver_config_json)
|
221
|
+
result = Applitools::RectangleSize.new viewport_size[:width], viewport_size[:height]
|
222
|
+
|
223
|
+
Applitools::EyesLogger.debug "Viewport size is #{result}."
|
224
|
+
result
|
223
225
|
end
|
224
226
|
|
225
227
|
# Takes a snapshot and matches it with the expected output.
|
@@ -242,6 +244,9 @@ module Applitools::Selenium
|
|
242
244
|
logger.info "check(#{name}) is called"
|
243
245
|
self.tag_for_debug = name
|
244
246
|
Applitools::ArgumentGuard.is_a? target, 'target', Applitools::Selenium::Target
|
247
|
+
|
248
|
+
return universal_check(name, target)
|
249
|
+
|
245
250
|
target_to_check = target.finalize
|
246
251
|
original_overflow = nil
|
247
252
|
original_position_provider = position_provider
|