playwright-ruby-client 1.15.beta2 → 1.16.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/documentation/docs/api/api_request_context.md +10 -0
- data/documentation/docs/api/browser_context.md +1 -1
- data/documentation/docs/api/locator.md +18 -0
- data/documentation/docs/api/mouse.md +11 -0
- data/documentation/docs/api/page.md +2 -1
- data/documentation/docs/api/request.md +10 -3
- data/documentation/docs/api/response.md +20 -2
- data/documentation/docs/include/api_coverage.md +17 -0
- data/documentation/package.json +2 -2
- data/documentation/yarn.lock +1430 -1486
- data/lib/playwright/channel_owners/api_request_context.rb +4 -0
- data/lib/playwright/channel_owners/browser_context.rb +5 -0
- data/lib/playwright/channel_owners/fetch_request.rb +6 -0
- data/lib/playwright/channel_owners/frame.rb +3 -1
- data/lib/playwright/channel_owners/page.rb +5 -0
- data/lib/playwright/channel_owners/request.rb +19 -16
- data/lib/playwright/channel_owners/response.rb +16 -13
- data/lib/playwright/http_headers.rb +0 -11
- data/lib/playwright/locator_impl.rb +4 -0
- data/lib/playwright/mouse_impl.rb +9 -0
- data/lib/playwright/raw_headers.rb +61 -0
- data/lib/playwright/route_handler.rb +13 -1
- data/lib/playwright/version.rb +2 -2
- data/lib/playwright.rb +1 -0
- data/lib/playwright_api/android.rb +6 -6
- data/lib/playwright_api/android_device.rb +6 -6
- data/lib/playwright_api/api_request_context.rb +146 -0
- data/lib/playwright_api/browser.rb +6 -6
- data/lib/playwright_api/browser_context.rb +7 -7
- data/lib/playwright_api/browser_type.rb +6 -6
- data/lib/playwright_api/cdp_session.rb +7 -7
- data/lib/playwright_api/console_message.rb +6 -6
- data/lib/playwright_api/dialog.rb +6 -6
- data/lib/playwright_api/element_handle.rb +6 -6
- data/lib/playwright_api/frame.rb +6 -6
- data/lib/playwright_api/js_handle.rb +6 -6
- data/lib/playwright_api/locator.rb +13 -0
- data/lib/playwright_api/mouse.rb +8 -0
- data/lib/playwright_api/page.rb +8 -7
- data/lib/playwright_api/playwright.rb +8 -8
- data/lib/playwright_api/request.rb +15 -11
- data/lib/playwright_api/response.rb +20 -13
- data/lib/playwright_api/route.rb +6 -6
- data/lib/playwright_api/selectors.rb +6 -6
- data/lib/playwright_api/web_socket.rb +6 -6
- data/lib/playwright_api/worker.rb +8 -8
- metadata +10 -5
@@ -72,6 +72,11 @@ module Playwright
|
|
72
72
|
|
73
73
|
if @routes.none? { |handler_entry| handler_entry.handle(wrapped_route, wrapped_request) }
|
74
74
|
route.continue
|
75
|
+
else
|
76
|
+
@routes.reject!(&:expired?)
|
77
|
+
if @routes.count == 0
|
78
|
+
@channel.async_send_message_to_server('setNetworkInterceptionEnabled', enabled: false)
|
79
|
+
end
|
75
80
|
end
|
76
81
|
end
|
77
82
|
|
@@ -593,7 +593,9 @@ module Playwright
|
|
593
593
|
end
|
594
594
|
|
595
595
|
def wait_for_timeout(timeout)
|
596
|
-
|
596
|
+
@channel.send_message_to_server('waitForTimeout', timeout: timeout)
|
597
|
+
|
598
|
+
nil
|
597
599
|
end
|
598
600
|
|
599
601
|
def wait_for_function(pageFunction, arg: nil, polling: nil, timeout: nil)
|
@@ -100,6 +100,11 @@ module Playwright
|
|
100
100
|
|
101
101
|
if @routes.none? { |handler_entry| handler_entry.handle(wrapped_route, wrapped_request) }
|
102
102
|
@browser_context.send(:on_route, route, request)
|
103
|
+
else
|
104
|
+
@routes.reject!(&:expired?)
|
105
|
+
if @routes.count == 0
|
106
|
+
@channel.async_send_message_to_server('setNetworkInterceptionEnabled', enabled: false)
|
107
|
+
end
|
103
108
|
end
|
104
109
|
end
|
105
110
|
|
@@ -1,14 +1,12 @@
|
|
1
1
|
require 'base64'
|
2
|
-
require_relative '../http_headers'
|
3
2
|
|
4
3
|
module Playwright
|
5
4
|
# @ref https://github.com/microsoft/playwright-python/blob/master/playwright/_impl/_network.py
|
6
5
|
define_channel_owner :Request do
|
7
|
-
include HttpHeaders::Parser
|
8
|
-
|
9
6
|
private def after_initialize
|
10
7
|
@redirected_from = ChannelOwners::Request.from_nullable(@initializer['redirectedFrom'])
|
11
8
|
@redirected_from&.send(:update_redirected_to, self)
|
9
|
+
@provisional_headers = RawHeaders.new(@initializer['headers'])
|
12
10
|
@timing = {
|
13
11
|
startTime: 0,
|
14
12
|
domainLookupStart: -1,
|
@@ -81,27 +79,32 @@ module Playwright
|
|
81
79
|
attr_reader :redirected_from, :redirected_to, :timing
|
82
80
|
|
83
81
|
def headers
|
84
|
-
|
82
|
+
@provisional_headers.headers
|
83
|
+
end
|
84
|
+
|
85
|
+
# @return [RawHeaders|nil]
|
86
|
+
private def actual_headers
|
87
|
+
@actual_headers ||= raw_request_headers
|
85
88
|
end
|
86
89
|
|
87
|
-
private def
|
88
|
-
@
|
90
|
+
private def raw_request_headers
|
91
|
+
RawHeaders.new(@channel.send_message_to_server('rawRequestHeaders'))
|
89
92
|
end
|
90
93
|
|
91
94
|
def all_headers
|
92
|
-
|
93
|
-
parse_headers_as_array(raw_headers, true).to_h
|
94
|
-
else
|
95
|
-
parse_headers_as_array(@initializer['headers'], true).to_h
|
96
|
-
end
|
95
|
+
actual_headers.headers
|
97
96
|
end
|
98
97
|
|
99
98
|
def headers_array
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
99
|
+
actual_headers.headers_array
|
100
|
+
end
|
101
|
+
|
102
|
+
def header_value(name)
|
103
|
+
actual_headers.get(name)
|
104
|
+
end
|
105
|
+
|
106
|
+
def header_values(name)
|
107
|
+
actual_headers.get_all(name)
|
105
108
|
end
|
106
109
|
|
107
110
|
def sizes
|
@@ -1,13 +1,11 @@
|
|
1
1
|
require 'base64'
|
2
2
|
require 'json'
|
3
|
-
require_relative '../http_headers'
|
4
3
|
|
5
4
|
module Playwright
|
6
5
|
# @ref https://github.com/microsoft/playwright-python/blob/master/playwright/_impl/_network.py
|
7
6
|
define_channel_owner :Response do
|
8
|
-
include HttpHeaders::Parser
|
9
|
-
|
10
7
|
private def after_initialize
|
8
|
+
@provisional_headers = RawHeaders.new(@initializer['headers'])
|
11
9
|
@request = ChannelOwners::Request.from(@initializer['request'])
|
12
10
|
timing = @initializer['timing']
|
13
11
|
@request.send(:update_timings,
|
@@ -42,27 +40,32 @@ module Playwright
|
|
42
40
|
end
|
43
41
|
|
44
42
|
def headers
|
45
|
-
|
46
|
-
end
|
47
|
-
|
48
|
-
private def raw_headers
|
49
|
-
@raw_headers ||= raw_response_headers
|
43
|
+
@provisional_headers.headers
|
50
44
|
end
|
51
45
|
|
52
|
-
|
53
|
-
|
46
|
+
# @return [RawHeaders]
|
47
|
+
private def actual_headers
|
48
|
+
@actual_headers ||= raw_response_headers
|
54
49
|
end
|
55
50
|
|
56
51
|
private def raw_response_headers
|
57
|
-
@channel.send_message_to_server('rawResponseHeaders')
|
52
|
+
RawHeaders.new(@channel.send_message_to_server('rawResponseHeaders'))
|
58
53
|
end
|
59
54
|
|
60
55
|
def all_headers
|
61
|
-
|
56
|
+
actual_headers.headers
|
62
57
|
end
|
63
58
|
|
64
59
|
def headers_array
|
65
|
-
|
60
|
+
actual_headers.headers_array
|
61
|
+
end
|
62
|
+
|
63
|
+
def header_value(name)
|
64
|
+
actual_headers.get(name)
|
65
|
+
end
|
66
|
+
|
67
|
+
def header_values(name)
|
68
|
+
actual_headers.get_all(name)
|
66
69
|
end
|
67
70
|
|
68
71
|
def server_addr
|
@@ -10,16 +10,5 @@ module Playwright
|
|
10
10
|
{ name: key, value: value }
|
11
11
|
end
|
12
12
|
end
|
13
|
-
|
14
|
-
module Parser
|
15
|
-
def parse_headers_as_array(serialized_headers, downcase)
|
16
|
-
serialized_headers.map do |header|
|
17
|
-
name = downcase ? header['name'].downcase : header['name']
|
18
|
-
value = header['value']
|
19
|
-
|
20
|
-
[name, value]
|
21
|
-
end
|
22
|
-
end
|
23
|
-
end
|
24
13
|
end
|
25
14
|
end
|
@@ -303,6 +303,10 @@ module Playwright
|
|
303
303
|
trial: trial)
|
304
304
|
end
|
305
305
|
|
306
|
+
def wait_for(state: nil, timeout: nil)
|
307
|
+
@frame.wait_for_selector(@selector, strict: true, state: state, timeout: timeout)
|
308
|
+
end
|
309
|
+
|
306
310
|
def set_checked(checked, **options)
|
307
311
|
if checked
|
308
312
|
check(**options)
|
@@ -44,5 +44,14 @@ module Playwright
|
|
44
44
|
def dblclick(x, y, button: nil, delay: nil)
|
45
45
|
click(x, y, button: button, clickCount: 2, delay: delay)
|
46
46
|
end
|
47
|
+
|
48
|
+
def wheel(deltaX, deltaY)
|
49
|
+
params = {
|
50
|
+
deltaX: deltaX,
|
51
|
+
deltaY: deltaY,
|
52
|
+
}
|
53
|
+
@channel.send_message_to_server('mouseWheel', params)
|
54
|
+
nil
|
55
|
+
end
|
47
56
|
end
|
48
57
|
end
|
@@ -0,0 +1,61 @@
|
|
1
|
+
module Playwright
|
2
|
+
class RawHeaders
|
3
|
+
def initialize(headers_array)
|
4
|
+
h_array = []
|
5
|
+
h_map = {}
|
6
|
+
headers_array.each do |header|
|
7
|
+
name = header['name']
|
8
|
+
key = name.downcase
|
9
|
+
value = header['value']
|
10
|
+
|
11
|
+
h_array << [name, value]
|
12
|
+
h_map[key] ||= []
|
13
|
+
h_map[key] << value
|
14
|
+
end
|
15
|
+
|
16
|
+
@headers_array = h_array
|
17
|
+
@headers_map = h_map
|
18
|
+
end
|
19
|
+
|
20
|
+
# @return [String|nil]
|
21
|
+
def get(name)
|
22
|
+
key = name.downcase
|
23
|
+
values = @headers_map[key]
|
24
|
+
if values
|
25
|
+
join(key, values)
|
26
|
+
else
|
27
|
+
nil
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
# @return [Array<String>]
|
32
|
+
def get_all(name)
|
33
|
+
values = @headers_map[name.downcase]
|
34
|
+
if values
|
35
|
+
values.dup
|
36
|
+
else
|
37
|
+
[]
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
def headers
|
42
|
+
@headers_map.map do |key, values|
|
43
|
+
[key, join(key, values)]
|
44
|
+
end.to_h
|
45
|
+
end
|
46
|
+
|
47
|
+
def headers_array
|
48
|
+
@headers_array.map do |name, value|
|
49
|
+
{ name: name, value: value }
|
50
|
+
end
|
51
|
+
end
|
52
|
+
|
53
|
+
private def join(key, values)
|
54
|
+
if key == 'set-cookie'
|
55
|
+
values.join("\n")
|
56
|
+
else
|
57
|
+
values.join(", ")
|
58
|
+
end
|
59
|
+
end
|
60
|
+
end
|
61
|
+
end
|
@@ -6,17 +6,25 @@ module Playwright
|
|
6
6
|
end
|
7
7
|
|
8
8
|
def handle
|
9
|
-
return false if
|
9
|
+
return false if expired?
|
10
10
|
|
11
11
|
@count = @count - 1
|
12
12
|
true
|
13
13
|
end
|
14
|
+
|
15
|
+
def expired?
|
16
|
+
@count <= 0
|
17
|
+
end
|
14
18
|
end
|
15
19
|
|
16
20
|
class StubCounter
|
17
21
|
def handle
|
18
22
|
true
|
19
23
|
end
|
24
|
+
|
25
|
+
def expired?
|
26
|
+
false
|
27
|
+
end
|
20
28
|
end
|
21
29
|
|
22
30
|
# @param url [String]
|
@@ -46,6 +54,10 @@ module Playwright
|
|
46
54
|
end
|
47
55
|
end
|
48
56
|
|
57
|
+
def expired?
|
58
|
+
@counter.expired?
|
59
|
+
end
|
60
|
+
|
49
61
|
def same_value?(url:, handler: nil)
|
50
62
|
if handler
|
51
63
|
@url_value == url && @handler == handler
|
data/lib/playwright/version.rb
CHANGED
data/lib/playwright.rb
CHANGED
@@ -20,6 +20,7 @@ require 'playwright/channel_owner'
|
|
20
20
|
require 'playwright/http_headers'
|
21
21
|
require 'playwright/input_files'
|
22
22
|
require 'playwright/connection'
|
23
|
+
require 'playwright/raw_headers'
|
23
24
|
require 'playwright/route_handler'
|
24
25
|
require 'playwright/select_option_values'
|
25
26
|
require 'playwright/timeout_settings'
|
@@ -36,12 +36,6 @@ module Playwright
|
|
36
36
|
end
|
37
37
|
alias_method :default_timeout=, :set_default_timeout
|
38
38
|
|
39
|
-
# -- inherited from EventEmitter --
|
40
|
-
# @nodoc
|
41
|
-
def off(event, callback)
|
42
|
-
event_emitter_proxy.off(event, callback)
|
43
|
-
end
|
44
|
-
|
45
39
|
# -- inherited from EventEmitter --
|
46
40
|
# @nodoc
|
47
41
|
def once(event, callback)
|
@@ -54,6 +48,12 @@ module Playwright
|
|
54
48
|
event_emitter_proxy.on(event, callback)
|
55
49
|
end
|
56
50
|
|
51
|
+
# -- inherited from EventEmitter --
|
52
|
+
# @nodoc
|
53
|
+
def off(event, callback)
|
54
|
+
event_emitter_proxy.off(event, callback)
|
55
|
+
end
|
56
|
+
|
57
57
|
private def event_emitter_proxy
|
58
58
|
@event_emitter_proxy ||= EventEmitterProxy.new(self, @impl)
|
59
59
|
end
|
@@ -174,12 +174,6 @@ module Playwright
|
|
174
174
|
wrap_impl(@impl.tap_on(unwrap_impl(selector), duration: unwrap_impl(duration), timeout: unwrap_impl(timeout)))
|
175
175
|
end
|
176
176
|
|
177
|
-
# -- inherited from EventEmitter --
|
178
|
-
# @nodoc
|
179
|
-
def off(event, callback)
|
180
|
-
event_emitter_proxy.off(event, callback)
|
181
|
-
end
|
182
|
-
|
183
177
|
# -- inherited from EventEmitter --
|
184
178
|
# @nodoc
|
185
179
|
def once(event, callback)
|
@@ -192,6 +186,12 @@ module Playwright
|
|
192
186
|
event_emitter_proxy.on(event, callback)
|
193
187
|
end
|
194
188
|
|
189
|
+
# -- inherited from EventEmitter --
|
190
|
+
# @nodoc
|
191
|
+
def off(event, callback)
|
192
|
+
event_emitter_proxy.off(event, callback)
|
193
|
+
end
|
194
|
+
|
195
195
|
private def event_emitter_proxy
|
196
196
|
@event_emitter_proxy ||= EventEmitterProxy.new(self, @impl)
|
197
197
|
end
|
@@ -0,0 +1,146 @@
|
|
1
|
+
module Playwright
|
2
|
+
# This API is used for the Web API testing. You can use it to trigger API endpoints, configure micro-services, prepare
|
3
|
+
# environment or the service to your e2e test. When used on `Page` or a `BrowserContext`, this API will automatically use
|
4
|
+
# the cookies from the corresponding `BrowserContext`. This means that if you log in using this API, your e2e test will be
|
5
|
+
# logged in and vice versa.
|
6
|
+
class APIRequestContext < PlaywrightApi
|
7
|
+
|
8
|
+
# Sends HTTP(S) [DELETE](https://developer.mozilla.org/en-US/docs/Web/HTTP/Methods/DELETE) request and returns its
|
9
|
+
# response. The method will populate request cookies from the context and update context cookies from the response. The
|
10
|
+
# method will automatically follow redirects.
|
11
|
+
def delete(
|
12
|
+
url,
|
13
|
+
failOnStatusCode: nil,
|
14
|
+
headers: nil,
|
15
|
+
ignoreHTTPSErrors: nil,
|
16
|
+
params: nil,
|
17
|
+
timeout: nil)
|
18
|
+
raise NotImplementedError.new('delete is not implemented yet.')
|
19
|
+
end
|
20
|
+
|
21
|
+
# All responses returned by [`method: APIRequestContext.get`] and similar methods are stored in the memory, so that you
|
22
|
+
# can later call [`method: APIResponse.body`]. This method discards all stored responses, and makes
|
23
|
+
# [`method: APIResponse.body`] throw "Response disposed" error.
|
24
|
+
def dispose
|
25
|
+
raise NotImplementedError.new('dispose is not implemented yet.')
|
26
|
+
end
|
27
|
+
|
28
|
+
# Sends HTTP(S) request and returns its response. The method will populate request cookies from the context and update
|
29
|
+
# context cookies from the response. The method will automatically follow redirects.
|
30
|
+
def fetch(
|
31
|
+
urlOrRequest,
|
32
|
+
data: nil,
|
33
|
+
failOnStatusCode: nil,
|
34
|
+
form: nil,
|
35
|
+
headers: nil,
|
36
|
+
ignoreHTTPSErrors: nil,
|
37
|
+
method: nil,
|
38
|
+
multipart: nil,
|
39
|
+
params: nil,
|
40
|
+
timeout: nil)
|
41
|
+
raise NotImplementedError.new('fetch is not implemented yet.')
|
42
|
+
end
|
43
|
+
|
44
|
+
# Sends HTTP(S) [GET](https://developer.mozilla.org/en-US/docs/Web/HTTP/Methods/GET) request and returns its response. The
|
45
|
+
# method will populate request cookies from the context and update context cookies from the response. The method will
|
46
|
+
# automatically follow redirects.
|
47
|
+
def get(
|
48
|
+
url,
|
49
|
+
failOnStatusCode: nil,
|
50
|
+
headers: nil,
|
51
|
+
ignoreHTTPSErrors: nil,
|
52
|
+
params: nil,
|
53
|
+
timeout: nil)
|
54
|
+
raise NotImplementedError.new('get is not implemented yet.')
|
55
|
+
end
|
56
|
+
|
57
|
+
# Sends HTTP(S) [HEAD](https://developer.mozilla.org/en-US/docs/Web/HTTP/Methods/HEAD) request and returns its response.
|
58
|
+
# The method will populate request cookies from the context and update context cookies from the response. The method will
|
59
|
+
# automatically follow redirects.
|
60
|
+
def head(
|
61
|
+
url,
|
62
|
+
failOnStatusCode: nil,
|
63
|
+
headers: nil,
|
64
|
+
ignoreHTTPSErrors: nil,
|
65
|
+
params: nil,
|
66
|
+
timeout: nil)
|
67
|
+
raise NotImplementedError.new('head is not implemented yet.')
|
68
|
+
end
|
69
|
+
|
70
|
+
# Sends HTTP(S) [PATCH](https://developer.mozilla.org/en-US/docs/Web/HTTP/Methods/PATCH) request and returns its response.
|
71
|
+
# The method will populate request cookies from the context and update context cookies from the response. The method will
|
72
|
+
# automatically follow redirects.
|
73
|
+
def patch(
|
74
|
+
url,
|
75
|
+
data: nil,
|
76
|
+
failOnStatusCode: nil,
|
77
|
+
form: nil,
|
78
|
+
headers: nil,
|
79
|
+
ignoreHTTPSErrors: nil,
|
80
|
+
multipart: nil,
|
81
|
+
params: nil,
|
82
|
+
timeout: nil)
|
83
|
+
raise NotImplementedError.new('patch is not implemented yet.')
|
84
|
+
end
|
85
|
+
|
86
|
+
# Sends HTTP(S) [POST](https://developer.mozilla.org/en-US/docs/Web/HTTP/Methods/POST) request and returns its response.
|
87
|
+
# The method will populate request cookies from the context and update context cookies from the response. The method will
|
88
|
+
# automatically follow redirects.
|
89
|
+
def post(
|
90
|
+
url,
|
91
|
+
data: nil,
|
92
|
+
failOnStatusCode: nil,
|
93
|
+
form: nil,
|
94
|
+
headers: nil,
|
95
|
+
ignoreHTTPSErrors: nil,
|
96
|
+
multipart: nil,
|
97
|
+
params: nil,
|
98
|
+
timeout: nil)
|
99
|
+
raise NotImplementedError.new('post is not implemented yet.')
|
100
|
+
end
|
101
|
+
|
102
|
+
# Sends HTTP(S) [PUT](https://developer.mozilla.org/en-US/docs/Web/HTTP/Methods/PUT) request and returns its response. The
|
103
|
+
# method will populate request cookies from the context and update context cookies from the response. The method will
|
104
|
+
# automatically follow redirects.
|
105
|
+
def put(
|
106
|
+
url,
|
107
|
+
data: nil,
|
108
|
+
failOnStatusCode: nil,
|
109
|
+
form: nil,
|
110
|
+
headers: nil,
|
111
|
+
ignoreHTTPSErrors: nil,
|
112
|
+
multipart: nil,
|
113
|
+
params: nil,
|
114
|
+
timeout: nil)
|
115
|
+
raise NotImplementedError.new('put is not implemented yet.')
|
116
|
+
end
|
117
|
+
|
118
|
+
# Returns storage state for this request context, contains current cookies and local storage snapshot if it was passed to
|
119
|
+
# the constructor.
|
120
|
+
def storage_state(path: nil)
|
121
|
+
raise NotImplementedError.new('storage_state is not implemented yet.')
|
122
|
+
end
|
123
|
+
|
124
|
+
# -- inherited from EventEmitter --
|
125
|
+
# @nodoc
|
126
|
+
def once(event, callback)
|
127
|
+
event_emitter_proxy.once(event, callback)
|
128
|
+
end
|
129
|
+
|
130
|
+
# -- inherited from EventEmitter --
|
131
|
+
# @nodoc
|
132
|
+
def on(event, callback)
|
133
|
+
event_emitter_proxy.on(event, callback)
|
134
|
+
end
|
135
|
+
|
136
|
+
# -- inherited from EventEmitter --
|
137
|
+
# @nodoc
|
138
|
+
def off(event, callback)
|
139
|
+
event_emitter_proxy.off(event, callback)
|
140
|
+
end
|
141
|
+
|
142
|
+
private def event_emitter_proxy
|
143
|
+
@event_emitter_proxy ||= EventEmitterProxy.new(self, @impl)
|
144
|
+
end
|
145
|
+
end
|
146
|
+
end
|
@@ -166,12 +166,6 @@ module Playwright
|
|
166
166
|
wrap_impl(@impl.version)
|
167
167
|
end
|
168
168
|
|
169
|
-
# -- inherited from EventEmitter --
|
170
|
-
# @nodoc
|
171
|
-
def off(event, callback)
|
172
|
-
event_emitter_proxy.off(event, callback)
|
173
|
-
end
|
174
|
-
|
175
169
|
# -- inherited from EventEmitter --
|
176
170
|
# @nodoc
|
177
171
|
def once(event, callback)
|
@@ -184,6 +178,12 @@ module Playwright
|
|
184
178
|
event_emitter_proxy.on(event, callback)
|
185
179
|
end
|
186
180
|
|
181
|
+
# -- inherited from EventEmitter --
|
182
|
+
# @nodoc
|
183
|
+
def off(event, callback)
|
184
|
+
event_emitter_proxy.off(event, callback)
|
185
|
+
end
|
186
|
+
|
187
187
|
private def event_emitter_proxy
|
188
188
|
@event_emitter_proxy ||= EventEmitterProxy.new(self, @impl)
|
189
189
|
end
|
@@ -6,7 +6,7 @@ module Playwright
|
|
6
6
|
# If a page opens another page, e.g. with a `window.open` call, the popup will belong to the parent page's browser
|
7
7
|
# context.
|
8
8
|
#
|
9
|
-
# Playwright allows
|
9
|
+
# Playwright allows creating "incognito" browser contexts with [`method: Browser.newContext`] method. "Incognito" browser
|
10
10
|
# contexts don't write any browsing data to disk.
|
11
11
|
#
|
12
12
|
# ```python sync
|
@@ -391,12 +391,6 @@ module Playwright
|
|
391
391
|
wrap_impl(@impl.options=(unwrap_impl(req)))
|
392
392
|
end
|
393
393
|
|
394
|
-
# -- inherited from EventEmitter --
|
395
|
-
# @nodoc
|
396
|
-
def off(event, callback)
|
397
|
-
event_emitter_proxy.off(event, callback)
|
398
|
-
end
|
399
|
-
|
400
394
|
# -- inherited from EventEmitter --
|
401
395
|
# @nodoc
|
402
396
|
def once(event, callback)
|
@@ -409,6 +403,12 @@ module Playwright
|
|
409
403
|
event_emitter_proxy.on(event, callback)
|
410
404
|
end
|
411
405
|
|
406
|
+
# -- inherited from EventEmitter --
|
407
|
+
# @nodoc
|
408
|
+
def off(event, callback)
|
409
|
+
event_emitter_proxy.off(event, callback)
|
410
|
+
end
|
411
|
+
|
412
412
|
private def event_emitter_proxy
|
413
413
|
@event_emitter_proxy ||= EventEmitterProxy.new(self, @impl)
|
414
414
|
end
|
@@ -146,12 +146,6 @@ module Playwright
|
|
146
146
|
wrap_impl(@impl.name)
|
147
147
|
end
|
148
148
|
|
149
|
-
# -- inherited from EventEmitter --
|
150
|
-
# @nodoc
|
151
|
-
def off(event, callback)
|
152
|
-
event_emitter_proxy.off(event, callback)
|
153
|
-
end
|
154
|
-
|
155
149
|
# -- inherited from EventEmitter --
|
156
150
|
# @nodoc
|
157
151
|
def once(event, callback)
|
@@ -164,6 +158,12 @@ module Playwright
|
|
164
158
|
event_emitter_proxy.on(event, callback)
|
165
159
|
end
|
166
160
|
|
161
|
+
# -- inherited from EventEmitter --
|
162
|
+
# @nodoc
|
163
|
+
def off(event, callback)
|
164
|
+
event_emitter_proxy.off(event, callback)
|
165
|
+
end
|
166
|
+
|
167
167
|
private def event_emitter_proxy
|
168
168
|
@event_emitter_proxy ||= EventEmitterProxy.new(self, @impl)
|
169
169
|
end
|
@@ -12,7 +12,7 @@ module Playwright
|
|
12
12
|
# https://github.com/aslushnikov/getting-started-with-cdp/blob/master/README.md
|
13
13
|
#
|
14
14
|
# ```python sync
|
15
|
-
# client = page.context
|
15
|
+
# client = page.context.new_cdp_session(page)
|
16
16
|
# client.send("Animation.enable")
|
17
17
|
# client.on("Animation.animationCreated", lambda: print("animation created!"))
|
18
18
|
# response = client.send("Animation.getPlaybackRate")
|
@@ -33,12 +33,6 @@ module Playwright
|
|
33
33
|
wrap_impl(@impl.send_message(unwrap_impl(method), params: unwrap_impl(params)))
|
34
34
|
end
|
35
35
|
|
36
|
-
# -- inherited from EventEmitter --
|
37
|
-
# @nodoc
|
38
|
-
def off(event, callback)
|
39
|
-
event_emitter_proxy.off(event, callback)
|
40
|
-
end
|
41
|
-
|
42
36
|
# -- inherited from EventEmitter --
|
43
37
|
# @nodoc
|
44
38
|
def once(event, callback)
|
@@ -51,6 +45,12 @@ module Playwright
|
|
51
45
|
event_emitter_proxy.on(event, callback)
|
52
46
|
end
|
53
47
|
|
48
|
+
# -- inherited from EventEmitter --
|
49
|
+
# @nodoc
|
50
|
+
def off(event, callback)
|
51
|
+
event_emitter_proxy.off(event, callback)
|
52
|
+
end
|
53
|
+
|
54
54
|
private def event_emitter_proxy
|
55
55
|
@event_emitter_proxy ||= EventEmitterProxy.new(self, @impl)
|
56
56
|
end
|
@@ -23,12 +23,6 @@ module Playwright
|
|
23
23
|
wrap_impl(@impl.type)
|
24
24
|
end
|
25
25
|
|
26
|
-
# -- inherited from EventEmitter --
|
27
|
-
# @nodoc
|
28
|
-
def off(event, callback)
|
29
|
-
event_emitter_proxy.off(event, callback)
|
30
|
-
end
|
31
|
-
|
32
26
|
# -- inherited from EventEmitter --
|
33
27
|
# @nodoc
|
34
28
|
def once(event, callback)
|
@@ -41,6 +35,12 @@ module Playwright
|
|
41
35
|
event_emitter_proxy.on(event, callback)
|
42
36
|
end
|
43
37
|
|
38
|
+
# -- inherited from EventEmitter --
|
39
|
+
# @nodoc
|
40
|
+
def off(event, callback)
|
41
|
+
event_emitter_proxy.off(event, callback)
|
42
|
+
end
|
43
|
+
|
44
44
|
private def event_emitter_proxy
|
45
45
|
@event_emitter_proxy ||= EventEmitterProxy.new(self, @impl)
|
46
46
|
end
|