cuprite 0.18 → 0.20
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/README.md +69 -37
- data/lib/capybara/cuprite/browser/deprecations.rb +26 -0
- data/lib/capybara/cuprite/browser/extensions.rb +59 -0
- data/lib/capybara/cuprite/browser.rb +28 -231
- data/lib/capybara/cuprite/deprecation.rb +13 -0
- data/lib/capybara/cuprite/devices.rb +188 -0
- data/lib/capybara/cuprite/driver/deprecations.rb +198 -0
- data/lib/capybara/cuprite/driver/extensions.rb +13 -0
- data/lib/capybara/cuprite/driver.rb +68 -201
- data/lib/capybara/cuprite/finder.rb +22 -0
- data/lib/capybara/cuprite/javascripts/drag.js +100 -103
- data/lib/capybara/cuprite/javascripts/index.js +511 -489
- data/lib/capybara/cuprite/node/deprecations.rb +43 -0
- data/lib/capybara/cuprite/node/extensions.rb +27 -0
- data/lib/capybara/cuprite/node.rb +140 -116
- data/lib/capybara/cuprite/options.rb +19 -0
- data/lib/capybara/cuprite/page/frames.rb +47 -0
- data/lib/capybara/cuprite/page/modals.rb +118 -0
- data/lib/capybara/cuprite/page.rb +9 -207
- data/lib/capybara/cuprite/version.rb +1 -1
- data/lib/capybara/cuprite.rb +1 -0
- metadata +16 -6
- data/lib/capybara/cuprite/cookie.rb +0 -47
|
@@ -0,0 +1,188 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Capybara
|
|
4
|
+
module Cuprite
|
|
5
|
+
module Devices
|
|
6
|
+
IPHONE_USER_AGENT = "Mozilla/5.0 (iPhone; CPU iPhone OS 18_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Mobile/15E148 Safari/604.1"
|
|
7
|
+
SAMSUNG_GALAXY_S8_PLUS_USER_AGENT = "Mozilla/5.0 (Linux; Android 8.0.0; SM-G955U Build/R16NW) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/%<version>s Mobile Safari/537.36"
|
|
8
|
+
WINDOWS_USER_AGENT = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/%<version>s Safari/537.36"
|
|
9
|
+
|
|
10
|
+
LIST = {
|
|
11
|
+
iphone_se: {
|
|
12
|
+
window_size: [375, 667], scale_factor: 2, mobile: true,
|
|
13
|
+
user_agent: IPHONE_USER_AGENT
|
|
14
|
+
},
|
|
15
|
+
iphone_xr: {
|
|
16
|
+
window_size: [414, 896], scale_factor: 2, mobile: true,
|
|
17
|
+
user_agent: IPHONE_USER_AGENT
|
|
18
|
+
},
|
|
19
|
+
iphone_12_pro: {
|
|
20
|
+
window_size: [390, 844], scale_factor: 3, mobile: true,
|
|
21
|
+
user_agent: IPHONE_USER_AGENT
|
|
22
|
+
},
|
|
23
|
+
iphone_14: {
|
|
24
|
+
window_size: [390, 844], scale_factor: 3, mobile: true,
|
|
25
|
+
user_agent: IPHONE_USER_AGENT
|
|
26
|
+
},
|
|
27
|
+
iphone_14_plus: {
|
|
28
|
+
window_size: [428, 926], scale_factor: 3, mobile: true,
|
|
29
|
+
user_agent: IPHONE_USER_AGENT
|
|
30
|
+
},
|
|
31
|
+
iphone_14_pro: {
|
|
32
|
+
window_size: [393, 852], scale_factor: 3, mobile: true,
|
|
33
|
+
user_agent: IPHONE_USER_AGENT
|
|
34
|
+
},
|
|
35
|
+
iphone_14_pro_max: {
|
|
36
|
+
window_size: [430, 932], scale_factor: 3, mobile: true,
|
|
37
|
+
user_agent: IPHONE_USER_AGENT
|
|
38
|
+
},
|
|
39
|
+
iphone_15: {
|
|
40
|
+
window_size: [393, 852], scale_factor: 3, mobile: true,
|
|
41
|
+
user_agent: IPHONE_USER_AGENT
|
|
42
|
+
},
|
|
43
|
+
iphone_15_plus: {
|
|
44
|
+
window_size: [430, 932], scale_factor: 3, mobile: true,
|
|
45
|
+
user_agent: IPHONE_USER_AGENT
|
|
46
|
+
},
|
|
47
|
+
iphone_15_pro: {
|
|
48
|
+
window_size: [393, 852], scale_factor: 3, mobile: true,
|
|
49
|
+
user_agent: IPHONE_USER_AGENT
|
|
50
|
+
},
|
|
51
|
+
iphone_15_pro_max: {
|
|
52
|
+
window_size: [430, 932], scale_factor: 3, mobile: true,
|
|
53
|
+
user_agent: IPHONE_USER_AGENT
|
|
54
|
+
},
|
|
55
|
+
iphone_16e: {
|
|
56
|
+
window_size: [390, 844], scale_factor: 3, mobile: true,
|
|
57
|
+
user_agent: IPHONE_USER_AGENT
|
|
58
|
+
},
|
|
59
|
+
iphone_16: {
|
|
60
|
+
window_size: [393, 852], scale_factor: 3, mobile: true,
|
|
61
|
+
user_agent: IPHONE_USER_AGENT
|
|
62
|
+
},
|
|
63
|
+
iphone_16_plus: {
|
|
64
|
+
window_size: [430, 932], scale_factor: 3, mobile: true,
|
|
65
|
+
user_agent: IPHONE_USER_AGENT
|
|
66
|
+
},
|
|
67
|
+
iphone_16_pro: {
|
|
68
|
+
window_size: [402, 874], scale_factor: 3, mobile: true,
|
|
69
|
+
user_agent: IPHONE_USER_AGENT
|
|
70
|
+
},
|
|
71
|
+
iphone_16_pro_max: {
|
|
72
|
+
window_size: [440, 956], scale_factor: 3, mobile: true,
|
|
73
|
+
user_agent: IPHONE_USER_AGENT
|
|
74
|
+
},
|
|
75
|
+
ipad_mini: {
|
|
76
|
+
window_size: [768, 1024], scale_factor: 2, mobile: true,
|
|
77
|
+
user_agent: "Mozilla/5.0 (iPad; CPU OS 18_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Mobile/15E148 Safari/604.1"
|
|
78
|
+
},
|
|
79
|
+
ipad_pro_13: {
|
|
80
|
+
window_size: [1032, 1376], scale_factor: 2, mobile: true,
|
|
81
|
+
user_agent: "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15"
|
|
82
|
+
},
|
|
83
|
+
|
|
84
|
+
pixel_7: {
|
|
85
|
+
window_size: [412, 915], scale_factor: 2.625, mobile: true,
|
|
86
|
+
user_agent: "Mozilla/5.0 (Linux; Android 13; Pixel 7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/%<version>s Mobile Safari/537.36"
|
|
87
|
+
},
|
|
88
|
+
pixel_8: {
|
|
89
|
+
window_size: [412, 915], scale_factor: 2.625, mobile: true,
|
|
90
|
+
user_agent: "Mozilla/5.0 (Linux; Android 14; Pixel 8) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/%<version>s Mobile Safari/537.36"
|
|
91
|
+
},
|
|
92
|
+
pixel_8_pro: {
|
|
93
|
+
window_size: [448, 997], scale_factor: 3, mobile: true,
|
|
94
|
+
user_agent: "Mozilla/5.0 (Linux; Android 14; Pixel 8 Pro) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/%<version>s Mobile Safari/537.36"
|
|
95
|
+
},
|
|
96
|
+
pixel_8a: {
|
|
97
|
+
window_size: [412, 915], scale_factor: 2.625, mobile: true,
|
|
98
|
+
user_agent: "Mozilla/5.0 (Linux; Android 14; Pixel 8a) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/%<version>s Mobile Safari/537.36"
|
|
99
|
+
},
|
|
100
|
+
pixel_9: {
|
|
101
|
+
window_size: [412, 924], scale_factor: 2.625, mobile: true,
|
|
102
|
+
user_agent: "Mozilla/5.0 (Linux; Android 14; Pixel 9) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/%<version>s Mobile Safari/537.36"
|
|
103
|
+
},
|
|
104
|
+
pixel_9_pro: {
|
|
105
|
+
window_size: [427, 952], scale_factor: 3, mobile: true,
|
|
106
|
+
user_agent: "Mozilla/5.0 (Linux; Android 14; Pixel 9 Pro) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/%<version>s Mobile Safari/537.36"
|
|
107
|
+
},
|
|
108
|
+
pixel_9_pro_xl: {
|
|
109
|
+
window_size: [448, 997], scale_factor: 3, mobile: true,
|
|
110
|
+
user_agent: "Mozilla/5.0 (Linux; Android 14; Pixel 9 Pro XL) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/%<version>s Mobile Safari/537.36"
|
|
111
|
+
},
|
|
112
|
+
pixel_10: {
|
|
113
|
+
window_size: [412, 924], scale_factor: 2.625, mobile: true,
|
|
114
|
+
user_agent: "Mozilla/5.0 (Linux; Android 16; Pixel 10) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/%<version>s Mobile Safari/537.36"
|
|
115
|
+
},
|
|
116
|
+
pixel_9_pro_fold: {
|
|
117
|
+
window_size: [412, 922], scale_factor: 2.625, mobile: true,
|
|
118
|
+
user_agent: "Mozilla/5.0 (Linux; Android 14; Pixel 9 Pro Fold) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/%<version>s Mobile Safari/537.36"
|
|
119
|
+
},
|
|
120
|
+
|
|
121
|
+
samsung_galaxy_s8_plus: {
|
|
122
|
+
window_size: [360, 740], scale_factor: 4, mobile: true,
|
|
123
|
+
user_agent: SAMSUNG_GALAXY_S8_PLUS_USER_AGENT
|
|
124
|
+
},
|
|
125
|
+
samsung_galaxy_s20_ultra: {
|
|
126
|
+
window_size: [412, 915], scale_factor: 3.5, mobile: true,
|
|
127
|
+
user_agent: "Mozilla/5.0 (Linux; Android 13; SM-G981B) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/%<version>s Mobile Safari/537.36"
|
|
128
|
+
},
|
|
129
|
+
samsung_galaxy_a55: {
|
|
130
|
+
window_size: [360, 800], scale_factor: 2.25, mobile: true,
|
|
131
|
+
user_agent: "Mozilla/5.0 (Linux; Android 14; SM-A556B) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/%<version>s Mobile Safari/537.36"
|
|
132
|
+
},
|
|
133
|
+
galaxy_z_fold_6: {
|
|
134
|
+
window_size: [412, 968], scale_factor: 2.625, mobile: true,
|
|
135
|
+
user_agent: "Mozilla/5.0 (Linux; Android 14; SM-F956U) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/%<version>s Mobile Safari/537.36"
|
|
136
|
+
},
|
|
137
|
+
galaxy_z_fold_5: {
|
|
138
|
+
window_size: [344, 882], scale_factor: 2.625, mobile: true,
|
|
139
|
+
user_agent: "Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/%<version>s Mobile Safari/537.36"
|
|
140
|
+
},
|
|
141
|
+
samsung_galaxy_a51_71: {
|
|
142
|
+
window_size: [412, 914], scale_factor: 2.625, mobile: true,
|
|
143
|
+
user_agent: SAMSUNG_GALAXY_S8_PLUS_USER_AGENT
|
|
144
|
+
},
|
|
145
|
+
galaxy_tab_s4: {
|
|
146
|
+
window_size: [712, 1138], scale_factor: 2.25, mobile: true,
|
|
147
|
+
user_agent: "Mozilla/5.0 (Linux; Android 8.1.0; SM-T837A) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/%<version>s Safari/537.36"
|
|
148
|
+
},
|
|
149
|
+
|
|
150
|
+
surface_pro_7: {
|
|
151
|
+
window_size: [912, 1368], scale_factor: 2, mobile: true,
|
|
152
|
+
user_agent: WINDOWS_USER_AGENT
|
|
153
|
+
},
|
|
154
|
+
surface_pro_10: {
|
|
155
|
+
window_size: [960, 1440], scale_factor: 2, mobile: true,
|
|
156
|
+
user_agent: WINDOWS_USER_AGENT
|
|
157
|
+
},
|
|
158
|
+
surface_duo: {
|
|
159
|
+
window_size: [540, 720], scale_factor: 2.5, mobile: true,
|
|
160
|
+
user_agent: "Mozilla/5.0 (Linux; Android 11.0; Surface Duo) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/%<version>s Mobile Safari/537.36"
|
|
161
|
+
},
|
|
162
|
+
|
|
163
|
+
nest_hub_max: {
|
|
164
|
+
window_size: [1280, 800], scale_factor: 2, mobile: true,
|
|
165
|
+
user_agent: "Mozilla/5.0 (X11; Linux aarch64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/%<version>s Safari/537.36 CrKey/1.54.250320"
|
|
166
|
+
},
|
|
167
|
+
jiophone_2: {
|
|
168
|
+
window_size: [240, 320], scale_factor: 1, mobile: true,
|
|
169
|
+
user_agent: "Mozilla/5.0 (Mobile; LYF/F300B/LYF-F300B-001-01-15-130718-i;Android; rv:48.0) Gecko/48.0 Firefox/48.0 KAIOS/2.5"
|
|
170
|
+
},
|
|
171
|
+
moto_g4: {
|
|
172
|
+
window_size: [360, 640], scale_factor: 3, mobile: true,
|
|
173
|
+
user_agent: "Mozilla/5.0 (Linux; Android 6.0.1; Moto G (4)) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/%<version>s Mobile Safari/537.36"
|
|
174
|
+
},
|
|
175
|
+
moto_g_power: {
|
|
176
|
+
window_size: [412, 823], scale_factor: 1.75, mobile: true,
|
|
177
|
+
user_agent: "Mozilla/5.0 (Linux; Android 11; moto g power (2022)) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/%<version>s Mobile Safari/537.36"
|
|
178
|
+
}
|
|
179
|
+
}.freeze
|
|
180
|
+
|
|
181
|
+
def self.fetch(name)
|
|
182
|
+
LIST.fetch(name.to_sym) do
|
|
183
|
+
raise ArgumentError, "Unknown device to emulate: #{name.inspect}, use one of #{LIST.keys.join(', ')}"
|
|
184
|
+
end
|
|
185
|
+
end
|
|
186
|
+
end
|
|
187
|
+
end
|
|
188
|
+
end
|
|
@@ -0,0 +1,198 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require "uri"
|
|
4
|
+
require "capybara/cuprite/deprecation"
|
|
5
|
+
|
|
6
|
+
module Capybara
|
|
7
|
+
module Cuprite
|
|
8
|
+
class Driver < Capybara::Driver::Base
|
|
9
|
+
module Deprecations
|
|
10
|
+
def self.deprecate(name, replacement)
|
|
11
|
+
define_method(name) do |*args, **kwargs, &block|
|
|
12
|
+
Cuprite.deprecation_warning("#{self.class}##{name}", "use ##{replacement}")
|
|
13
|
+
public_send(replacement, *args, **kwargs, &block)
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
private_class_method :deprecate
|
|
17
|
+
|
|
18
|
+
deprecate :body, :html
|
|
19
|
+
deprecate :window_handle, :current_window_handle
|
|
20
|
+
deprecate :back, :go_back
|
|
21
|
+
deprecate :forward, :go_forward
|
|
22
|
+
deprecate :render, :save_screenshot
|
|
23
|
+
|
|
24
|
+
def render_base64(format = :png, options = {})
|
|
25
|
+
Cuprite.deprecation_warning("#{self.class}#render_base64", "use page.driver.browser.screenshot or .pdf")
|
|
26
|
+
browser.screenshot(format: format, encoding: :base64, **options)
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
def zoom_factor=(value)
|
|
30
|
+
Cuprite.deprecation_warning("#{self.class}#zoom_factor=", "pass scale: to save_screenshot")
|
|
31
|
+
@zoom_factor = value.to_f
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
def paper_size=(value)
|
|
35
|
+
Cuprite.deprecation_warning("#{self.class}#paper_size=",
|
|
36
|
+
"pass paper_width: and paper_height: to save_screenshot")
|
|
37
|
+
@paper_size = value
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
def resize(width, height)
|
|
41
|
+
Cuprite.deprecation_warning("#{self.class}##{__callee__}", "use page.current_window.resize_to")
|
|
42
|
+
resize_window_to(current_window_handle, width, height)
|
|
43
|
+
end
|
|
44
|
+
alias resize_window resize
|
|
45
|
+
|
|
46
|
+
def click(x, y)
|
|
47
|
+
Cuprite.deprecation_warning("#{self.class}#click", "use page.driver.browser.mouse.click")
|
|
48
|
+
browser.mouse.click(x: x, y: y)
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
def scroll_to(left, top)
|
|
52
|
+
Cuprite.deprecation_warning("#{self.class}#scroll_to", "use page.scroll_to")
|
|
53
|
+
browser.mouse.scroll_to(left, top)
|
|
54
|
+
end
|
|
55
|
+
|
|
56
|
+
def set_proxy(host, port, user = nil, password = nil, bypass = nil)
|
|
57
|
+
Cuprite.deprecation_warning("#{self.class}#set_proxy", "pass the :proxy option to the driver")
|
|
58
|
+
@options.merge!(proxy: { host: host, port: port, user: user, password: password, bypass: bypass })
|
|
59
|
+
end
|
|
60
|
+
|
|
61
|
+
def restart
|
|
62
|
+
Cuprite.deprecation_warning("#{self.class}#restart", "use page.driver.browser.restart")
|
|
63
|
+
browser.restart
|
|
64
|
+
end
|
|
65
|
+
|
|
66
|
+
def wait_for_reload(timeout = 1)
|
|
67
|
+
Cuprite.deprecation_warning("#{self.class}#wait_for_reload", "use page.driver.browser.wait_for_reload")
|
|
68
|
+
browser.wait_for_reload(timeout)
|
|
69
|
+
end
|
|
70
|
+
|
|
71
|
+
def timeout
|
|
72
|
+
Cuprite.deprecation_warning("#{self.class}#timeout", "use page.driver.browser.timeout")
|
|
73
|
+
browser.timeout
|
|
74
|
+
end
|
|
75
|
+
|
|
76
|
+
def timeout=(value)
|
|
77
|
+
Cuprite.deprecation_warning("#{self.class}#timeout=", "use page.driver.browser.timeout=")
|
|
78
|
+
browser.timeout = value
|
|
79
|
+
end
|
|
80
|
+
|
|
81
|
+
def device_pixel_ratio
|
|
82
|
+
Cuprite.deprecation_warning("#{self.class}#device_pixel_ratio", "use page.driver.browser.device_pixel_ratio")
|
|
83
|
+
browser.device_pixel_ratio
|
|
84
|
+
end
|
|
85
|
+
|
|
86
|
+
def viewport_size
|
|
87
|
+
Cuprite.deprecation_warning("#{self.class}#viewport_size", "use page.driver.browser.viewport_size")
|
|
88
|
+
browser.viewport_size
|
|
89
|
+
end
|
|
90
|
+
|
|
91
|
+
def authorize(user, password)
|
|
92
|
+
Cuprite.deprecation_warning("#{self.class}##{__callee__}", "use page.driver.browser.network.authorize")
|
|
93
|
+
browser.network.authorize(user: user, password: password) do |request, _index, _total|
|
|
94
|
+
request.continue
|
|
95
|
+
end
|
|
96
|
+
end
|
|
97
|
+
alias basic_authorize authorize
|
|
98
|
+
|
|
99
|
+
def headers
|
|
100
|
+
Cuprite.deprecation_warning("#{self.class}#headers", "use page.driver.browser.headers.get")
|
|
101
|
+
browser.headers.get
|
|
102
|
+
end
|
|
103
|
+
|
|
104
|
+
def headers=(headers)
|
|
105
|
+
Cuprite.deprecation_warning("#{self.class}#headers=", "use page.driver.browser.headers.set")
|
|
106
|
+
browser.headers.set(headers)
|
|
107
|
+
end
|
|
108
|
+
|
|
109
|
+
def add_headers(headers)
|
|
110
|
+
Cuprite.deprecation_warning("#{self.class}#add_headers", "use page.driver.browser.headers.add")
|
|
111
|
+
browser.headers.add(headers)
|
|
112
|
+
end
|
|
113
|
+
|
|
114
|
+
def add_header(name, value, permanent: true)
|
|
115
|
+
Cuprite.deprecation_warning("#{self.class}#add_header", "use page.driver.browser.headers.add")
|
|
116
|
+
browser.headers.add({ name => value }, permanent: permanent)
|
|
117
|
+
end
|
|
118
|
+
|
|
119
|
+
def cookies
|
|
120
|
+
Cuprite.deprecation_warning("#{self.class}#cookies", "use page.driver.browser.cookies.all")
|
|
121
|
+
browser.cookies.all
|
|
122
|
+
end
|
|
123
|
+
|
|
124
|
+
def set_cookie(name, value, options = {})
|
|
125
|
+
Cuprite.deprecation_warning("#{self.class}#set_cookie", "use page.driver.browser.cookies.set")
|
|
126
|
+
options = options.dup
|
|
127
|
+
options[:name] ||= name
|
|
128
|
+
options[:value] ||= value
|
|
129
|
+
options[:domain] ||= default_domain
|
|
130
|
+
browser.cookies.set(**options)
|
|
131
|
+
end
|
|
132
|
+
|
|
133
|
+
def remove_cookie(name, **options)
|
|
134
|
+
Cuprite.deprecation_warning("#{self.class}#remove_cookie", "use page.driver.browser.cookies.remove")
|
|
135
|
+
options[:domain] = default_domain if options.empty?
|
|
136
|
+
options = options.merge(name: name)
|
|
137
|
+
browser.cookies.remove(**options)
|
|
138
|
+
end
|
|
139
|
+
|
|
140
|
+
def clear_cookies
|
|
141
|
+
Cuprite.deprecation_warning("#{self.class}#clear_cookies", "use page.driver.browser.cookies.clear")
|
|
142
|
+
browser.cookies.clear
|
|
143
|
+
end
|
|
144
|
+
|
|
145
|
+
def network_traffic(type = nil)
|
|
146
|
+
Cuprite.deprecation_warning("#{self.class}#network_traffic", "use page.driver.browser.network.traffic")
|
|
147
|
+
traffic = browser.network.traffic
|
|
148
|
+
|
|
149
|
+
case type.to_s
|
|
150
|
+
when "all"
|
|
151
|
+
traffic
|
|
152
|
+
when "blocked"
|
|
153
|
+
traffic.select(&:blocked?)
|
|
154
|
+
else
|
|
155
|
+
# when request isn't blocked
|
|
156
|
+
traffic.reject(&:blocked?)
|
|
157
|
+
end
|
|
158
|
+
end
|
|
159
|
+
|
|
160
|
+
def clear_network_traffic
|
|
161
|
+
Cuprite.deprecation_warning("#{self.class}#clear_network_traffic",
|
|
162
|
+
"use page.driver.browser.network.clear(:traffic)")
|
|
163
|
+
browser.network.clear(:traffic)
|
|
164
|
+
end
|
|
165
|
+
|
|
166
|
+
def wait_for_network_idle(**options)
|
|
167
|
+
Cuprite.deprecation_warning("#{self.class}#wait_for_network_idle",
|
|
168
|
+
"use page.driver.browser.network.wait_for_idle")
|
|
169
|
+
browser.network.wait_for_idle(**options)
|
|
170
|
+
end
|
|
171
|
+
|
|
172
|
+
def clear_memory_cache
|
|
173
|
+
Cuprite.deprecation_warning("#{self.class}#clear_memory_cache",
|
|
174
|
+
"use page.driver.browser.network.clear(:cache)")
|
|
175
|
+
browser.network.clear(:cache)
|
|
176
|
+
end
|
|
177
|
+
|
|
178
|
+
private
|
|
179
|
+
|
|
180
|
+
def default_domain
|
|
181
|
+
if @started
|
|
182
|
+
URI.parse(browser.current_url).host
|
|
183
|
+
else
|
|
184
|
+
URI.parse(default_cookie_host).host || "127.0.0.1"
|
|
185
|
+
end
|
|
186
|
+
end
|
|
187
|
+
|
|
188
|
+
def default_cookie_host
|
|
189
|
+
if respond_to?(:session_options)
|
|
190
|
+
session_options.app_host
|
|
191
|
+
else
|
|
192
|
+
Capybara.app_host
|
|
193
|
+
end || ""
|
|
194
|
+
end
|
|
195
|
+
end
|
|
196
|
+
end
|
|
197
|
+
end
|
|
198
|
+
end
|