playwright-ruby-client 0.0.8 → 0.3.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +3 -3
- data/docs/api_coverage.md +159 -101
- data/lib/playwright.rb +5 -2
- data/lib/playwright/{input_types/android_input.rb → android_input_impl.rb} +5 -1
- data/lib/playwright/api_implementation.rb +18 -0
- data/lib/playwright/channel.rb +13 -6
- data/lib/playwright/channel_owner.rb +3 -5
- data/lib/playwright/channel_owners/android.rb +1 -1
- data/lib/playwright/channel_owners/android_device.rb +12 -12
- data/lib/playwright/channel_owners/binding_call.rb +3 -0
- data/lib/playwright/channel_owners/browser.rb +1 -1
- data/lib/playwright/channel_owners/browser_context.rb +157 -3
- data/lib/playwright/channel_owners/dialog.rb +28 -0
- data/lib/playwright/channel_owners/download.rb +27 -0
- data/lib/playwright/channel_owners/element_handle.rb +15 -4
- data/lib/playwright/channel_owners/frame.rb +24 -5
- data/lib/playwright/channel_owners/js_handle.rb +1 -1
- data/lib/playwright/channel_owners/page.rb +367 -29
- data/lib/playwright/channel_owners/playwright.rb +4 -0
- data/lib/playwright/channel_owners/request.rb +35 -3
- data/lib/playwright/channel_owners/response.rb +60 -0
- data/lib/playwright/channel_owners/route.rb +78 -0
- data/lib/playwright/channel_owners/selectors.rb +19 -1
- data/lib/playwright/errors.rb +1 -1
- data/lib/playwright/event_emitter.rb +8 -1
- data/lib/playwright/event_emitter_proxy.rb +49 -0
- data/lib/playwright/file_chooser_impl.rb +23 -0
- data/lib/playwright/http_headers.rb +20 -0
- data/lib/playwright/input_files.rb +1 -1
- data/lib/playwright/{input_types/keyboard.rb → keyboard_impl.rb} +5 -1
- data/lib/playwright/mouse_impl.rb +7 -0
- data/lib/playwright/playwright_api.rb +59 -20
- data/lib/playwright/route_handler_entry.rb +36 -0
- data/lib/playwright/select_option_values.rb +14 -4
- data/lib/playwright/touchscreen_impl.rb +7 -0
- data/lib/playwright/utils.rb +4 -3
- data/lib/playwright/version.rb +1 -1
- data/lib/playwright/wait_helper.rb +1 -1
- data/lib/playwright_api/android.rb +82 -11
- data/lib/playwright_api/android_device.rb +148 -32
- data/lib/playwright_api/android_input.rb +17 -13
- data/lib/playwright_api/android_socket.rb +16 -0
- data/lib/playwright_api/android_web_view.rb +21 -0
- data/lib/playwright_api/binding_call.rb +14 -5
- data/lib/playwright_api/browser.rb +22 -23
- data/lib/playwright_api/browser_context.rb +49 -35
- data/lib/playwright_api/browser_type.rb +24 -64
- data/lib/playwright_api/chromium_browser_context.rb +10 -8
- data/lib/playwright_api/console_message.rb +10 -6
- data/lib/playwright_api/dialog.rb +37 -6
- data/lib/playwright_api/download.rb +28 -11
- data/lib/playwright_api/element_handle.rb +107 -96
- data/lib/playwright_api/file_chooser.rb +18 -10
- data/lib/playwright_api/frame.rb +124 -117
- data/lib/playwright_api/js_handle.rb +20 -22
- data/lib/playwright_api/keyboard.rb +5 -5
- data/lib/playwright_api/page.rb +206 -148
- data/lib/playwright_api/playwright.rb +33 -45
- data/lib/playwright_api/request.rb +11 -12
- data/lib/playwright_api/response.rb +30 -16
- data/lib/playwright_api/route.rb +27 -5
- data/lib/playwright_api/selectors.rb +14 -10
- data/lib/playwright_api/web_socket.rb +10 -1
- data/lib/playwright_api/worker.rb +13 -13
- metadata +16 -7
- data/lib/playwright/input_type.rb +0 -19
- data/lib/playwright/input_types/mouse.rb +0 -4
- data/lib/playwright/input_types/touchscreen.rb +0 -4
@@ -1,25 +1,29 @@
|
|
1
1
|
module Playwright
|
2
|
-
# @nodoc
|
3
2
|
class AndroidInput < PlaywrightApi
|
4
3
|
|
5
|
-
#
|
6
|
-
def
|
7
|
-
wrap_impl(@impl.
|
8
|
-
end
|
9
|
-
|
10
|
-
# @nodoc
|
11
|
-
def tap_point(point)
|
12
|
-
wrap_impl(@impl.tap_point(unwrap_impl(point)))
|
4
|
+
# Performs a drag between `from` and `to` points.
|
5
|
+
def drag(from, to, steps)
|
6
|
+
wrap_impl(@impl.drag(unwrap_impl(from), unwrap_impl(to), unwrap_impl(steps)))
|
13
7
|
end
|
14
8
|
|
15
|
-
#
|
9
|
+
# Presses the `key`.
|
16
10
|
def press(key)
|
17
11
|
wrap_impl(@impl.press(unwrap_impl(key)))
|
18
12
|
end
|
19
13
|
|
20
|
-
#
|
21
|
-
def
|
22
|
-
|
14
|
+
# Swipes following the path defined by `segments`.
|
15
|
+
def swipe(from, segments, steps)
|
16
|
+
raise NotImplementedError.new('swipe is not implemented yet.')
|
17
|
+
end
|
18
|
+
|
19
|
+
# Taps at the specified `point`.
|
20
|
+
def tap_point(point)
|
21
|
+
wrap_impl(@impl.tap_point(unwrap_impl(point)))
|
22
|
+
end
|
23
|
+
|
24
|
+
# Types `text` into currently focused widget.
|
25
|
+
def type(text)
|
26
|
+
wrap_impl(@impl.type(unwrap_impl(text)))
|
23
27
|
end
|
24
28
|
end
|
25
29
|
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
module Playwright
|
2
|
+
# `AndroidSocket` is a way to communicate with a process launched on the `AndroidDevice`. Use
|
3
|
+
# [`method: AndroidDevice.open`] to open a socket.
|
4
|
+
class AndroidSocket < PlaywrightApi
|
5
|
+
|
6
|
+
# Closes the socket.
|
7
|
+
def close
|
8
|
+
raise NotImplementedError.new('close is not implemented yet.')
|
9
|
+
end
|
10
|
+
|
11
|
+
# Writes some `data` to the socket.
|
12
|
+
def write(data)
|
13
|
+
raise NotImplementedError.new('write is not implemented yet.')
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
module Playwright
|
2
|
+
# `AndroidWebView` represents a WebView open on the `AndroidDevice`. WebView is usually obtained using
|
3
|
+
# [`method: AndroidDevice.webView`].
|
4
|
+
class AndroidWebView < PlaywrightApi
|
5
|
+
|
6
|
+
# Connects to the WebView and returns a regular Playwright `Page` to interact with.
|
7
|
+
def page
|
8
|
+
raise NotImplementedError.new('page is not implemented yet.')
|
9
|
+
end
|
10
|
+
|
11
|
+
# WebView process PID.
|
12
|
+
def pid
|
13
|
+
raise NotImplementedError.new('pid is not implemented yet.')
|
14
|
+
end
|
15
|
+
|
16
|
+
# WebView package identifier.
|
17
|
+
def pkg
|
18
|
+
raise NotImplementedError.new('pkg is not implemented yet.')
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
@@ -2,22 +2,31 @@ module Playwright
|
|
2
2
|
# @nodoc
|
3
3
|
class BindingCall < PlaywrightApi
|
4
4
|
|
5
|
-
# -- inherited from EventEmitter --
|
6
5
|
# @nodoc
|
7
|
-
def
|
8
|
-
wrap_impl(@impl.
|
6
|
+
def name
|
7
|
+
wrap_impl(@impl.name)
|
9
8
|
end
|
10
9
|
|
11
10
|
# -- inherited from EventEmitter --
|
12
11
|
# @nodoc
|
13
12
|
def off(event, callback)
|
14
|
-
|
13
|
+
event_emitter_proxy.off(event, callback)
|
15
14
|
end
|
16
15
|
|
17
16
|
# -- inherited from EventEmitter --
|
18
17
|
# @nodoc
|
19
18
|
def once(event, callback)
|
20
|
-
|
19
|
+
event_emitter_proxy.once(event, callback)
|
20
|
+
end
|
21
|
+
|
22
|
+
# -- inherited from EventEmitter --
|
23
|
+
# @nodoc
|
24
|
+
def on(event, callback)
|
25
|
+
event_emitter_proxy.on(event, callback)
|
26
|
+
end
|
27
|
+
|
28
|
+
private def event_emitter_proxy
|
29
|
+
@event_emitter_proxy ||= EventEmitterProxy.new(self, @impl)
|
21
30
|
end
|
22
31
|
end
|
23
32
|
end
|
@@ -1,7 +1,7 @@
|
|
1
1
|
module Playwright
|
2
2
|
# - extends: [EventEmitter]
|
3
3
|
#
|
4
|
-
# A Browser is created via [`method: BrowserType.launch`]. An example of using a `Browser` to create a
|
4
|
+
# A Browser is created via [`method: BrowserType.launch`]. An example of using a `Browser` to create a `Page`:
|
5
5
|
#
|
6
6
|
#
|
7
7
|
# ```js
|
@@ -135,20 +135,20 @@ module Playwright
|
|
135
135
|
isMobile: nil,
|
136
136
|
javaScriptEnabled: nil,
|
137
137
|
locale: nil,
|
138
|
-
|
138
|
+
noViewport: nil,
|
139
139
|
offline: nil,
|
140
140
|
permissions: nil,
|
141
141
|
proxy: nil,
|
142
|
-
|
143
|
-
|
142
|
+
record_har_omit_content: nil,
|
143
|
+
record_har_path: nil,
|
144
|
+
record_video_dir: nil,
|
145
|
+
record_video_size: nil,
|
144
146
|
storageState: nil,
|
145
147
|
timezoneId: nil,
|
146
148
|
userAgent: nil,
|
147
|
-
videoSize: nil,
|
148
|
-
videosPath: nil,
|
149
149
|
viewport: nil,
|
150
150
|
&block)
|
151
|
-
wrap_impl(@impl.new_context(acceptDownloads: unwrap_impl(acceptDownloads), bypassCSP: unwrap_impl(bypassCSP), colorScheme: unwrap_impl(colorScheme), deviceScaleFactor: unwrap_impl(deviceScaleFactor), extraHTTPHeaders: unwrap_impl(extraHTTPHeaders), geolocation: unwrap_impl(geolocation), hasTouch: unwrap_impl(hasTouch), httpCredentials: unwrap_impl(httpCredentials), ignoreHTTPSErrors: unwrap_impl(ignoreHTTPSErrors), isMobile: unwrap_impl(isMobile), javaScriptEnabled: unwrap_impl(javaScriptEnabled), locale: unwrap_impl(locale),
|
151
|
+
wrap_impl(@impl.new_context(acceptDownloads: unwrap_impl(acceptDownloads), bypassCSP: unwrap_impl(bypassCSP), colorScheme: unwrap_impl(colorScheme), deviceScaleFactor: unwrap_impl(deviceScaleFactor), extraHTTPHeaders: unwrap_impl(extraHTTPHeaders), geolocation: unwrap_impl(geolocation), hasTouch: unwrap_impl(hasTouch), httpCredentials: unwrap_impl(httpCredentials), ignoreHTTPSErrors: unwrap_impl(ignoreHTTPSErrors), isMobile: unwrap_impl(isMobile), javaScriptEnabled: unwrap_impl(javaScriptEnabled), locale: unwrap_impl(locale), noViewport: unwrap_impl(noViewport), offline: unwrap_impl(offline), permissions: unwrap_impl(permissions), proxy: unwrap_impl(proxy), record_har_omit_content: unwrap_impl(record_har_omit_content), record_har_path: unwrap_impl(record_har_path), record_video_dir: unwrap_impl(record_video_dir), record_video_size: unwrap_impl(record_video_size), storageState: unwrap_impl(storageState), timezoneId: unwrap_impl(timezoneId), userAgent: unwrap_impl(userAgent), viewport: unwrap_impl(viewport), &wrap_block_call(block)))
|
152
152
|
end
|
153
153
|
|
154
154
|
# Creates a new page in a new browser context. Closing this page will close the context as well.
|
@@ -169,19 +169,19 @@ module Playwright
|
|
169
169
|
isMobile: nil,
|
170
170
|
javaScriptEnabled: nil,
|
171
171
|
locale: nil,
|
172
|
-
|
172
|
+
noViewport: nil,
|
173
173
|
offline: nil,
|
174
174
|
permissions: nil,
|
175
175
|
proxy: nil,
|
176
|
-
|
177
|
-
|
176
|
+
record_har_omit_content: nil,
|
177
|
+
record_har_path: nil,
|
178
|
+
record_video_dir: nil,
|
179
|
+
record_video_size: nil,
|
178
180
|
storageState: nil,
|
179
181
|
timezoneId: nil,
|
180
182
|
userAgent: nil,
|
181
|
-
videoSize: nil,
|
182
|
-
videosPath: nil,
|
183
183
|
viewport: nil)
|
184
|
-
wrap_impl(@impl.new_page(acceptDownloads: unwrap_impl(acceptDownloads), bypassCSP: unwrap_impl(bypassCSP), colorScheme: unwrap_impl(colorScheme), deviceScaleFactor: unwrap_impl(deviceScaleFactor), extraHTTPHeaders: unwrap_impl(extraHTTPHeaders), geolocation: unwrap_impl(geolocation), hasTouch: unwrap_impl(hasTouch), httpCredentials: unwrap_impl(httpCredentials), ignoreHTTPSErrors: unwrap_impl(ignoreHTTPSErrors), isMobile: unwrap_impl(isMobile), javaScriptEnabled: unwrap_impl(javaScriptEnabled), locale: unwrap_impl(locale),
|
184
|
+
wrap_impl(@impl.new_page(acceptDownloads: unwrap_impl(acceptDownloads), bypassCSP: unwrap_impl(bypassCSP), colorScheme: unwrap_impl(colorScheme), deviceScaleFactor: unwrap_impl(deviceScaleFactor), extraHTTPHeaders: unwrap_impl(extraHTTPHeaders), geolocation: unwrap_impl(geolocation), hasTouch: unwrap_impl(hasTouch), httpCredentials: unwrap_impl(httpCredentials), ignoreHTTPSErrors: unwrap_impl(ignoreHTTPSErrors), isMobile: unwrap_impl(isMobile), javaScriptEnabled: unwrap_impl(javaScriptEnabled), locale: unwrap_impl(locale), noViewport: unwrap_impl(noViewport), offline: unwrap_impl(offline), permissions: unwrap_impl(permissions), proxy: unwrap_impl(proxy), record_har_omit_content: unwrap_impl(record_har_omit_content), record_har_path: unwrap_impl(record_har_path), record_video_dir: unwrap_impl(record_video_dir), record_video_size: unwrap_impl(record_video_size), storageState: unwrap_impl(storageState), timezoneId: unwrap_impl(timezoneId), userAgent: unwrap_impl(userAgent), viewport: unwrap_impl(viewport)))
|
185
185
|
end
|
186
186
|
|
187
187
|
# Returns the browser version.
|
@@ -189,27 +189,26 @@ module Playwright
|
|
189
189
|
wrap_impl(@impl.version)
|
190
190
|
end
|
191
191
|
|
192
|
+
# -- inherited from EventEmitter --
|
192
193
|
# @nodoc
|
193
|
-
def
|
194
|
-
|
194
|
+
def off(event, callback)
|
195
|
+
event_emitter_proxy.off(event, callback)
|
195
196
|
end
|
196
197
|
|
197
198
|
# -- inherited from EventEmitter --
|
198
199
|
# @nodoc
|
199
|
-
def
|
200
|
-
|
200
|
+
def once(event, callback)
|
201
|
+
event_emitter_proxy.once(event, callback)
|
201
202
|
end
|
202
203
|
|
203
204
|
# -- inherited from EventEmitter --
|
204
205
|
# @nodoc
|
205
|
-
def
|
206
|
-
|
206
|
+
def on(event, callback)
|
207
|
+
event_emitter_proxy.on(event, callback)
|
207
208
|
end
|
208
209
|
|
209
|
-
|
210
|
-
|
211
|
-
def once(event, callback)
|
212
|
-
wrap_impl(@impl.once(unwrap_impl(event), unwrap_impl(callback)))
|
210
|
+
private def event_emitter_proxy
|
211
|
+
@event_emitter_proxy ||= EventEmitterProxy.new(self, @impl)
|
213
212
|
end
|
214
213
|
end
|
215
214
|
end
|
@@ -57,7 +57,7 @@ module Playwright
|
|
57
57
|
# browser_context.add_cookies([cookie_object1, cookie_object2])
|
58
58
|
# ```
|
59
59
|
def add_cookies(cookies)
|
60
|
-
|
60
|
+
wrap_impl(@impl.add_cookies(unwrap_impl(cookies)))
|
61
61
|
end
|
62
62
|
|
63
63
|
# Adds a script which would be evaluated in one of the following scenarios:
|
@@ -96,18 +96,18 @@ module Playwright
|
|
96
96
|
#
|
97
97
|
# > NOTE: The order of evaluation of multiple scripts installed via [`method: BrowserContext.addInitScript`] and
|
98
98
|
# [`method: Page.addInitScript`] is not defined.
|
99
|
-
def add_init_script(
|
100
|
-
|
99
|
+
def add_init_script(path: nil, script: nil)
|
100
|
+
wrap_impl(@impl.add_init_script(path: unwrap_impl(path), script: unwrap_impl(script)))
|
101
101
|
end
|
102
102
|
|
103
103
|
# Returns the browser instance of the context. If it was launched as a persistent context null gets returned.
|
104
104
|
def browser
|
105
|
-
|
105
|
+
wrap_impl(@impl.browser)
|
106
106
|
end
|
107
107
|
|
108
108
|
# Clears context cookies.
|
109
109
|
def clear_cookies
|
110
|
-
|
110
|
+
wrap_impl(@impl.clear_cookies)
|
111
111
|
end
|
112
112
|
|
113
113
|
# Clears all permission overrides for the browser context.
|
@@ -134,7 +134,7 @@ module Playwright
|
|
134
134
|
# context.clear_permissions()
|
135
135
|
# ```
|
136
136
|
def clear_permissions
|
137
|
-
|
137
|
+
wrap_impl(@impl.clear_permissions)
|
138
138
|
end
|
139
139
|
|
140
140
|
# Closes the browser context. All the pages that belong to the browser context will be closed.
|
@@ -147,7 +147,7 @@ module Playwright
|
|
147
147
|
# If no URLs are specified, this method returns all cookies. If URLs are specified, only cookies that affect those URLs
|
148
148
|
# are returned.
|
149
149
|
def cookies(urls: nil)
|
150
|
-
|
150
|
+
wrap_impl(@impl.cookies(urls: unwrap_impl(urls)))
|
151
151
|
end
|
152
152
|
|
153
153
|
# The method adds a function called `name` on the `window` object of every frame in every page in the context. When
|
@@ -278,7 +278,7 @@ module Playwright
|
|
278
278
|
# """)
|
279
279
|
# ```
|
280
280
|
def expose_binding(name, callback, handle: nil)
|
281
|
-
|
281
|
+
wrap_impl(@impl.expose_binding(unwrap_impl(name), unwrap_impl(callback), handle: unwrap_impl(handle)))
|
282
282
|
end
|
283
283
|
|
284
284
|
# The method adds a function called `name` on the `window` object of every frame in every page in the context. When
|
@@ -379,13 +379,13 @@ module Playwright
|
|
379
379
|
# run(playwright)
|
380
380
|
# ```
|
381
381
|
def expose_function(name, callback)
|
382
|
-
|
382
|
+
wrap_impl(@impl.expose_function(unwrap_impl(name), unwrap_impl(callback)))
|
383
383
|
end
|
384
384
|
|
385
385
|
# Grants specified permissions to the browser context. Only grants corresponding permissions to the given origin if
|
386
386
|
# specified.
|
387
387
|
def grant_permissions(permissions, origin: nil)
|
388
|
-
|
388
|
+
wrap_impl(@impl.grant_permissions(unwrap_impl(permissions), origin: unwrap_impl(origin)))
|
389
389
|
end
|
390
390
|
|
391
391
|
# Creates a new page in the browser context.
|
@@ -464,7 +464,7 @@ module Playwright
|
|
464
464
|
#
|
465
465
|
# > NOTE: Enabling routing disables http cache.
|
466
466
|
def route(url, handler)
|
467
|
-
|
467
|
+
wrap_impl(@impl.route(unwrap_impl(url), unwrap_impl(handler)))
|
468
468
|
end
|
469
469
|
|
470
470
|
# This setting will change the default maximum navigation time for the following methods and related shortcuts:
|
@@ -478,7 +478,7 @@ module Playwright
|
|
478
478
|
# > NOTE: [`method: Page.setDefaultNavigationTimeout`] and [`method: Page.setDefaultTimeout`] take priority over
|
479
479
|
# [`method: BrowserContext.setDefaultNavigationTimeout`].
|
480
480
|
def set_default_navigation_timeout(timeout)
|
481
|
-
|
481
|
+
wrap_impl(@impl.set_default_navigation_timeout(unwrap_impl(timeout)))
|
482
482
|
end
|
483
483
|
alias_method :default_navigation_timeout=, :set_default_navigation_timeout
|
484
484
|
|
@@ -487,7 +487,7 @@ module Playwright
|
|
487
487
|
# > NOTE: [`method: Page.setDefaultNavigationTimeout`], [`method: Page.setDefaultTimeout`] and
|
488
488
|
# [`method: BrowserContext.setDefaultNavigationTimeout`] take priority over [`method: BrowserContext.setDefaultTimeout`].
|
489
489
|
def set_default_timeout(timeout)
|
490
|
-
|
490
|
+
wrap_impl(@impl.set_default_timeout(unwrap_impl(timeout)))
|
491
491
|
end
|
492
492
|
alias_method :default_timeout=, :set_default_timeout
|
493
493
|
|
@@ -497,7 +497,7 @@ module Playwright
|
|
497
497
|
#
|
498
498
|
# > NOTE: [`method: BrowserContext.setExtraHTTPHeaders`] does not guarantee the order of headers in the outgoing requests.
|
499
499
|
def set_extra_http_headers(headers)
|
500
|
-
|
500
|
+
wrap_impl(@impl.set_extra_http_headers(unwrap_impl(headers)))
|
501
501
|
end
|
502
502
|
alias_method :extra_http_headers=, :set_extra_http_headers
|
503
503
|
|
@@ -519,18 +519,12 @@ module Playwright
|
|
519
519
|
# > NOTE: Consider using [`method: BrowserContext.grantPermissions`] to grant permissions for the browser context pages to
|
520
520
|
# read its geolocation.
|
521
521
|
def set_geolocation(geolocation)
|
522
|
-
|
522
|
+
wrap_impl(@impl.set_geolocation(unwrap_impl(geolocation)))
|
523
523
|
end
|
524
524
|
alias_method :geolocation=, :set_geolocation
|
525
525
|
|
526
|
-
# **DEPRECATED** Browsers may cache credentials after successful authentication. Create a new browser context instead.
|
527
|
-
def set_http_credentials(httpCredentials)
|
528
|
-
raise NotImplementedError.new('set_http_credentials is not implemented yet.')
|
529
|
-
end
|
530
|
-
alias_method :http_credentials=, :set_http_credentials
|
531
|
-
|
532
526
|
def set_offline(offline)
|
533
|
-
|
527
|
+
wrap_impl(@impl.set_offline(unwrap_impl(offline)))
|
534
528
|
end
|
535
529
|
alias_method :offline=, :set_offline
|
536
530
|
|
@@ -542,7 +536,7 @@ module Playwright
|
|
542
536
|
# Removes a route created with [`method: BrowserContext.route`]. When `handler` is not specified, removes all routes for
|
543
537
|
# the `url`.
|
544
538
|
def unroute(url, handler: nil)
|
545
|
-
|
539
|
+
wrap_impl(@impl.unroute(unwrap_impl(url), handler: unwrap_impl(handler)))
|
546
540
|
end
|
547
541
|
|
548
542
|
# Waits for event to fire and passes its value into the predicate function. Returns when the predicate returns truthy
|
@@ -567,18 +561,29 @@ module Playwright
|
|
567
561
|
# page.click("button")
|
568
562
|
# page = event_info.value
|
569
563
|
# ```
|
570
|
-
def expect_event(event,
|
571
|
-
|
564
|
+
def expect_event(event, predicate: nil, timeout: nil, &block)
|
565
|
+
wrap_impl(@impl.expect_event(unwrap_impl(event), predicate: unwrap_impl(predicate), timeout: unwrap_impl(timeout), &wrap_block_call(block)))
|
572
566
|
end
|
573
567
|
|
574
|
-
#
|
575
|
-
|
576
|
-
|
568
|
+
# Performs action and waits for a new `Page` to be created in the context. If predicate is provided, it passes `Page`
|
569
|
+
# value into the `predicate` function and waits for `predicate(event)` to return a truthy value. Will throw an error if
|
570
|
+
# the context closes before new `Page` is created.
|
571
|
+
def expect_page(predicate: nil, timeout: nil)
|
572
|
+
wrap_impl(@impl.expect_page(predicate: unwrap_impl(predicate), timeout: unwrap_impl(timeout)))
|
573
|
+
end
|
574
|
+
|
575
|
+
# > NOTE: In most cases, you should use [`method: BrowserContext.waitForEvent`].
|
576
|
+
#
|
577
|
+
# Waits for given `event` to fire. If predicate is provided, it passes event's value into the `predicate` function and
|
578
|
+
# waits for `predicate(event)` to return a truthy value. Will throw an error if the socket is closed before the `event` is
|
579
|
+
# fired.
|
580
|
+
def wait_for_event(event, predicate: nil, timeout: nil)
|
581
|
+
raise NotImplementedError.new('wait_for_event is not implemented yet.')
|
577
582
|
end
|
578
583
|
|
579
584
|
# @nodoc
|
580
|
-
def
|
581
|
-
wrap_impl(@impl.
|
585
|
+
def browser=(req)
|
586
|
+
wrap_impl(@impl.browser=(unwrap_impl(req)))
|
582
587
|
end
|
583
588
|
|
584
589
|
# @nodoc
|
@@ -591,22 +596,31 @@ module Playwright
|
|
591
596
|
wrap_impl(@impl.options=(unwrap_impl(req)))
|
592
597
|
end
|
593
598
|
|
594
|
-
# -- inherited from EventEmitter --
|
595
599
|
# @nodoc
|
596
|
-
def
|
597
|
-
wrap_impl(@impl.
|
600
|
+
def pause
|
601
|
+
wrap_impl(@impl.pause)
|
598
602
|
end
|
599
603
|
|
600
604
|
# -- inherited from EventEmitter --
|
601
605
|
# @nodoc
|
602
606
|
def off(event, callback)
|
603
|
-
|
607
|
+
event_emitter_proxy.off(event, callback)
|
604
608
|
end
|
605
609
|
|
606
610
|
# -- inherited from EventEmitter --
|
607
611
|
# @nodoc
|
608
612
|
def once(event, callback)
|
609
|
-
|
613
|
+
event_emitter_proxy.once(event, callback)
|
614
|
+
end
|
615
|
+
|
616
|
+
# -- inherited from EventEmitter --
|
617
|
+
# @nodoc
|
618
|
+
def on(event, callback)
|
619
|
+
event_emitter_proxy.on(event, callback)
|
620
|
+
end
|
621
|
+
|
622
|
+
private def event_emitter_proxy
|
623
|
+
@event_emitter_proxy ||= EventEmitterProxy.new(self, @impl)
|
610
624
|
end
|
611
625
|
end
|
612
626
|
end
|
@@ -49,11 +49,6 @@ module Playwright
|
|
49
49
|
# ```
|
50
50
|
class BrowserType < PlaywrightApi
|
51
51
|
|
52
|
-
# This methods attaches Playwright to an existing browser instance.
|
53
|
-
def connect(params)
|
54
|
-
raise NotImplementedError.new('connect is not implemented yet.')
|
55
|
-
end
|
56
|
-
|
57
52
|
# A path where Playwright expects to find a bundled browser executable.
|
58
53
|
def executable_path
|
59
54
|
wrap_impl(@impl.executable_path)
|
@@ -82,19 +77,19 @@ module Playwright
|
|
82
77
|
# )
|
83
78
|
# ```
|
84
79
|
#
|
85
|
-
# > **Chromium-only** Playwright can also be used to control the Chrome
|
86
|
-
# Chromium it is bundled with. There is no guarantee it will work with any other version. Use
|
87
|
-
# extreme caution.
|
80
|
+
# > **Chromium-only** Playwright can also be used to control the Google Chrome or Microsoft Edge browsers, but it works
|
81
|
+
# best with the version of Chromium it is bundled with. There is no guarantee it will work with any other version. Use
|
82
|
+
# `executablePath` option with extreme caution.
|
88
83
|
# >
|
89
84
|
# > If Google Chrome (rather than Chromium) is preferred, a
|
90
85
|
# [Chrome Canary](https://www.google.com/chrome/browser/canary.html) or
|
91
86
|
# [Dev Channel](https://www.chromium.org/getting-involved/dev-channel) build is suggested.
|
92
87
|
# >
|
93
|
-
# >
|
94
|
-
#
|
95
|
-
#
|
96
|
-
#
|
97
|
-
# [
|
88
|
+
# > Stock browsers like Google Chrome and Microsoft Edge are suitable for tests that require proprietary media codecs for
|
89
|
+
# video playback. See
|
90
|
+
# [this article](https://www.howtogeek.com/202825/what%E2%80%99s-the-difference-between-chromium-and-chrome/) for other
|
91
|
+
# differences between Chromium and Chrome.
|
92
|
+
# [This article](https://chromium.googlesource.com/chromium/src/+/lkgr/docs/chromium_browser_vs_google_chrome.md)
|
98
93
|
# describes some differences for Linux users.
|
99
94
|
def launch(
|
100
95
|
args: nil,
|
@@ -109,12 +104,11 @@ module Playwright
|
|
109
104
|
handleSIGTERM: nil,
|
110
105
|
headless: nil,
|
111
106
|
ignoreDefaultArgs: nil,
|
112
|
-
logger: nil,
|
113
107
|
proxy: nil,
|
114
108
|
slowMo: nil,
|
115
109
|
timeout: nil,
|
116
110
|
&block)
|
117
|
-
wrap_impl(@impl.launch(args: unwrap_impl(args), chromiumSandbox: unwrap_impl(chromiumSandbox), devtools: unwrap_impl(devtools), downloadsPath: unwrap_impl(downloadsPath), env: unwrap_impl(env), executablePath: unwrap_impl(executablePath), firefoxUserPrefs: unwrap_impl(firefoxUserPrefs), handleSIGHUP: unwrap_impl(handleSIGHUP), handleSIGINT: unwrap_impl(handleSIGINT), handleSIGTERM: unwrap_impl(handleSIGTERM), headless: unwrap_impl(headless), ignoreDefaultArgs: unwrap_impl(ignoreDefaultArgs),
|
111
|
+
wrap_impl(@impl.launch(args: unwrap_impl(args), chromiumSandbox: unwrap_impl(chromiumSandbox), devtools: unwrap_impl(devtools), downloadsPath: unwrap_impl(downloadsPath), env: unwrap_impl(env), executablePath: unwrap_impl(executablePath), firefoxUserPrefs: unwrap_impl(firefoxUserPrefs), handleSIGHUP: unwrap_impl(handleSIGHUP), handleSIGINT: unwrap_impl(handleSIGINT), handleSIGTERM: unwrap_impl(handleSIGTERM), headless: unwrap_impl(headless), ignoreDefaultArgs: unwrap_impl(ignoreDefaultArgs), proxy: unwrap_impl(proxy), slowMo: unwrap_impl(slowMo), timeout: unwrap_impl(timeout), &wrap_block_call(block)))
|
118
112
|
end
|
119
113
|
|
120
114
|
# Returns the persistent browser context instance.
|
@@ -146,60 +140,22 @@ module Playwright
|
|
146
140
|
isMobile: nil,
|
147
141
|
javaScriptEnabled: nil,
|
148
142
|
locale: nil,
|
149
|
-
|
143
|
+
noViewport: nil,
|
150
144
|
offline: nil,
|
151
145
|
permissions: nil,
|
152
146
|
proxy: nil,
|
153
|
-
|
154
|
-
|
147
|
+
record_har_omit_content: nil,
|
148
|
+
record_har_path: nil,
|
149
|
+
record_video_dir: nil,
|
150
|
+
record_video_size: nil,
|
155
151
|
slowMo: nil,
|
156
152
|
timeout: nil,
|
157
153
|
timezoneId: nil,
|
158
154
|
userAgent: nil,
|
159
|
-
videoSize: nil,
|
160
|
-
videosPath: nil,
|
161
155
|
viewport: nil)
|
162
156
|
raise NotImplementedError.new('launch_persistent_context is not implemented yet.')
|
163
157
|
end
|
164
158
|
|
165
|
-
# Returns the browser app instance.
|
166
|
-
#
|
167
|
-
# Launches browser server that client can connect to. An example of launching a browser executable and connecting to it
|
168
|
-
# later:
|
169
|
-
#
|
170
|
-
#
|
171
|
-
# ```js
|
172
|
-
# const { chromium } = require('playwright'); // Or 'webkit' or 'firefox'.
|
173
|
-
#
|
174
|
-
# (async () => {
|
175
|
-
# const browserServer = await chromium.launchServer();
|
176
|
-
# const wsEndpoint = browserServer.wsEndpoint();
|
177
|
-
# // Use web socket endpoint later to establish a connection.
|
178
|
-
# const browser = await chromium.connect({ wsEndpoint });
|
179
|
-
# // Close browser instance.
|
180
|
-
# await browserServer.close();
|
181
|
-
# })();
|
182
|
-
# ```
|
183
|
-
def launch_server(
|
184
|
-
args: nil,
|
185
|
-
chromiumSandbox: nil,
|
186
|
-
devtools: nil,
|
187
|
-
downloadsPath: nil,
|
188
|
-
env: nil,
|
189
|
-
executablePath: nil,
|
190
|
-
firefoxUserPrefs: nil,
|
191
|
-
handleSIGHUP: nil,
|
192
|
-
handleSIGINT: nil,
|
193
|
-
handleSIGTERM: nil,
|
194
|
-
headless: nil,
|
195
|
-
ignoreDefaultArgs: nil,
|
196
|
-
logger: nil,
|
197
|
-
port: nil,
|
198
|
-
proxy: nil,
|
199
|
-
timeout: nil)
|
200
|
-
raise NotImplementedError.new('launch_server is not implemented yet.')
|
201
|
-
end
|
202
|
-
|
203
159
|
# Returns browser name. For example: `'chromium'`, `'webkit'` or `'firefox'`.
|
204
160
|
def name
|
205
161
|
wrap_impl(@impl.name)
|
@@ -207,20 +163,24 @@ module Playwright
|
|
207
163
|
|
208
164
|
# -- inherited from EventEmitter --
|
209
165
|
# @nodoc
|
210
|
-
def
|
211
|
-
|
166
|
+
def off(event, callback)
|
167
|
+
event_emitter_proxy.off(event, callback)
|
212
168
|
end
|
213
169
|
|
214
170
|
# -- inherited from EventEmitter --
|
215
171
|
# @nodoc
|
216
|
-
def
|
217
|
-
|
172
|
+
def once(event, callback)
|
173
|
+
event_emitter_proxy.once(event, callback)
|
218
174
|
end
|
219
175
|
|
220
176
|
# -- inherited from EventEmitter --
|
221
177
|
# @nodoc
|
222
|
-
def
|
223
|
-
|
178
|
+
def on(event, callback)
|
179
|
+
event_emitter_proxy.on(event, callback)
|
180
|
+
end
|
181
|
+
|
182
|
+
private def event_emitter_proxy
|
183
|
+
@event_emitter_proxy ||= EventEmitterProxy.new(self, @impl)
|
224
184
|
end
|
225
185
|
end
|
226
186
|
end
|