playwright-ruby-client 1.46.0 → 1.47.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/documentation/docs/api/api_response.md +1 -1
- data/documentation/docs/api/browser.md +0 -1
- data/documentation/docs/api/browser_context.md +1 -2
- data/documentation/docs/api/cdp_session.md +0 -1
- data/documentation/docs/api/page.md +0 -1
- data/documentation/docs/api/route.md +9 -3
- data/documentation/docs/article/guides/recording_video.md +1 -1
- data/lib/playwright/channel_owners/api_request_context.rb +23 -1
- data/lib/playwright/version.rb +2 -2
- data/lib/playwright_api/api_response.rb +1 -1
- data/lib/playwright_api/browser.rb +0 -1
- data/lib/playwright_api/browser_context.rb +1 -2
- data/lib/playwright_api/cdp_session.rb +0 -1
- data/lib/playwright_api/page.rb +12 -13
- data/lib/playwright_api/playwright.rb +4 -4
- data/lib/playwright_api/route.rb +9 -3
- data/lib/playwright_api/worker.rb +4 -4
- data/sig/playwright.rbs +7 -7
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4ba01989399fc2a5a939b0471703384bafe37c0dda1e303dfb4f5c187d1e2f32
|
4
|
+
data.tar.gz: 98ab56b3079b654287aa4521b261745892222b699e696f016b90c09258796b1e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 24d8ef9d5fb812b46494ebdec1adf2412e7a129368ea1b6e58883e73f028af1b2912e8a14a56e204a5d01c094a75c9e812b2a7df9fc42a3039f736ca267389a9
|
7
|
+
data.tar.gz: fdcd1a66ec8a5db98e094126e3bfde6c0d0c43aae68c56926f8779ebab4d394cb4715f66bb69c7b37e21c0daea4cf1c92723123e9263342b42a6b6721052c52e
|
@@ -54,7 +54,7 @@ def headers_array
|
|
54
54
|
```
|
55
55
|
|
56
56
|
|
57
|
-
An array with all the
|
57
|
+
An array with all the response HTTP headers associated with this response. Header names are not lower-cased.
|
58
58
|
Headers with multiple entries, such as `Set-Cookie`, appear in the array multiple times.
|
59
59
|
|
60
60
|
## json
|
@@ -4,14 +4,13 @@ sidebar_position: 10
|
|
4
4
|
|
5
5
|
# BrowserContext
|
6
6
|
|
7
|
-
- extends: [EventEmitter]
|
8
7
|
|
9
8
|
BrowserContexts provide a way to operate multiple independent browser sessions.
|
10
9
|
|
11
10
|
If a page opens another page, e.g. with a `window.open` call, the popup will belong to the parent page's browser
|
12
11
|
context.
|
13
12
|
|
14
|
-
Playwright allows creating
|
13
|
+
Playwright allows creating isolated non-persistent browser contexts with [Browser#new_context](./browser#new_context) method. Non-persistent browser
|
15
14
|
contexts don't write any browsing data to disk.
|
16
15
|
|
17
16
|
```ruby
|
@@ -4,7 +4,6 @@ sidebar_position: 10
|
|
4
4
|
|
5
5
|
# Page
|
6
6
|
|
7
|
-
- extends: [EventEmitter]
|
8
7
|
|
9
8
|
Page provides methods to interact with a single tab in a [Browser](./browser), or an
|
10
9
|
[extension background page](https://developer.chrome.com/extensions/background_pages) in Chromium. One [Browser](./browser)
|
@@ -26,7 +26,7 @@ def continue(headers: nil, method: nil, postData: nil, url: nil)
|
|
26
26
|
```
|
27
27
|
|
28
28
|
|
29
|
-
|
29
|
+
Sends route's request to the network with optional overrides.
|
30
30
|
|
31
31
|
**Usage**
|
32
32
|
|
@@ -47,6 +47,8 @@ page.route("**/*", method(:handle))
|
|
47
47
|
|
48
48
|
Note that any overrides such as `url` or `headers` only apply to the request being routed. If this request results in a redirect, overrides will not be applied to the new redirected request. If you want to propagate a header through redirects, use the combination of [Route#fetch](./route#fetch) and [Route#fulfill](./route#fulfill) instead.
|
49
49
|
|
50
|
+
[Route#continue](./route#continue) will immediately send the request to the network, other matching handlers won't be invoked. Use [Route#fallback](./route#fallback) If you want next matching handler in the chain to be invoked.
|
51
|
+
|
50
52
|
## fallback
|
51
53
|
|
52
54
|
```
|
@@ -54,13 +56,15 @@ def fallback(headers: nil, method: nil, postData: nil, url: nil)
|
|
54
56
|
```
|
55
57
|
|
56
58
|
|
59
|
+
Continues route's request with optional overrides. The method is similar to [Route#continue](./route#continue) with the difference that other matching handlers will be invoked before sending the request.
|
60
|
+
|
61
|
+
**Usage**
|
62
|
+
|
57
63
|
When several routes match the given pattern, they run in the order opposite to their registration.
|
58
64
|
That way the last registered route can always override all the previous ones. In the example below,
|
59
65
|
request will be handled by the bottom-most handler first, then it'll fall back to the previous one and
|
60
66
|
in the end will be aborted by the first registered route.
|
61
67
|
|
62
|
-
**Usage**
|
63
|
-
|
64
68
|
```ruby
|
65
69
|
page.route("**/*", -> (route,_) { route.abort }) # Runs last.
|
66
70
|
page.route("**/*", -> (route,_) { route.fallback }) # Runs second.
|
@@ -114,6 +118,8 @@ end
|
|
114
118
|
page.route("**/*", method(:handle))
|
115
119
|
```
|
116
120
|
|
121
|
+
Use [Route#continue](./route#continue) to immediately send the request to the network, other matching handlers won't be invoked in that case.
|
122
|
+
|
117
123
|
## fetch
|
118
124
|
|
119
125
|
```
|
@@ -37,7 +37,7 @@ The previous example uses [Dir#mktmpdir](https://docs.ruby-lang.org/ja/latest/me
|
|
37
37
|
|
38
38
|
## Getting video path and recorded video
|
39
39
|
|
40
|
-
This is really
|
40
|
+
This is really confusing for beginners, but in Playwright
|
41
41
|
|
42
42
|
* We can get the video path **only when page is alive (before calling BrowserContext#close or Page#close)**
|
43
43
|
* We can acquire the completely saved video **only after calling BrowserContext#close**
|
@@ -1,4 +1,5 @@
|
|
1
1
|
require 'base64'
|
2
|
+
require 'cgi'
|
2
3
|
|
3
4
|
module Playwright
|
4
5
|
define_channel_owner :APIRequestContext do
|
@@ -112,7 +113,7 @@ module Playwright
|
|
112
113
|
headers_obj = headers || request&.headers
|
113
114
|
fetch_params = {
|
114
115
|
url: url || request.url,
|
115
|
-
params:
|
116
|
+
params: map_params_to_array(params),
|
116
117
|
method: method || request&.method || 'GET',
|
117
118
|
headers: headers_obj ? HttpHeaders.new(headers_obj).as_serialized : nil,
|
118
119
|
}
|
@@ -179,6 +180,27 @@ module Playwright
|
|
179
180
|
}
|
180
181
|
end
|
181
182
|
|
183
|
+
private def map_params_to_array(params)
|
184
|
+
if params.is_a?(String)
|
185
|
+
unless params.start_with?('?')
|
186
|
+
raise ArgumentError.new("Query string must start with '?'")
|
187
|
+
end
|
188
|
+
query_string_to_array(params[1..-1])
|
189
|
+
else
|
190
|
+
object_to_array(params)
|
191
|
+
end
|
192
|
+
end
|
193
|
+
|
194
|
+
private def query_string_to_array(query_string)
|
195
|
+
params = CGI.parse(query_string)
|
196
|
+
|
197
|
+
params.map do |key, values|
|
198
|
+
values.map do |value|
|
199
|
+
{ name: key, value: value }
|
200
|
+
end
|
201
|
+
end.flatten
|
202
|
+
end
|
203
|
+
|
182
204
|
private def object_to_array(hash)
|
183
205
|
hash&.map do |key, value|
|
184
206
|
{ name: key, value: value.to_s }
|
data/lib/playwright/version.rb
CHANGED
@@ -35,7 +35,7 @@ module Playwright
|
|
35
35
|
end
|
36
36
|
|
37
37
|
#
|
38
|
-
# An array with all the
|
38
|
+
# An array with all the response HTTP headers associated with this response. Header names are not lower-cased.
|
39
39
|
# Headers with multiple entries, such as `Set-Cookie`, appear in the array multiple times.
|
40
40
|
def headers_array
|
41
41
|
wrap_impl(@impl.headers_array)
|
@@ -1,12 +1,11 @@
|
|
1
1
|
module Playwright
|
2
|
-
# - extends: [EventEmitter]
|
3
2
|
#
|
4
3
|
# BrowserContexts provide a way to operate multiple independent browser sessions.
|
5
4
|
#
|
6
5
|
# If a page opens another page, e.g. with a `window.open` call, the popup will belong to the parent page's browser
|
7
6
|
# context.
|
8
7
|
#
|
9
|
-
# Playwright allows creating
|
8
|
+
# Playwright allows creating isolated non-persistent browser contexts with [`method: Browser.newContext`] method. Non-persistent browser
|
10
9
|
# contexts don't write any browsing data to disk.
|
11
10
|
#
|
12
11
|
# ```python sync
|
data/lib/playwright_api/page.rb
CHANGED
@@ -1,5 +1,4 @@
|
|
1
1
|
module Playwright
|
2
|
-
# - extends: [EventEmitter]
|
3
2
|
#
|
4
3
|
# Page provides methods to interact with a single tab in a `Browser`, or an
|
5
4
|
# [extension background page](https://developer.chrome.com/extensions/background_pages) in Chromium. One `Browser`
|
@@ -1751,13 +1750,8 @@ module Playwright
|
|
1751
1750
|
end
|
1752
1751
|
|
1753
1752
|
# @nodoc
|
1754
|
-
def
|
1755
|
-
wrap_impl(@impl.
|
1756
|
-
end
|
1757
|
-
|
1758
|
-
# @nodoc
|
1759
|
-
def guid
|
1760
|
-
wrap_impl(@impl.guid)
|
1753
|
+
def start_js_coverage(resetOnNavigation: nil, reportAnonymousScripts: nil)
|
1754
|
+
wrap_impl(@impl.start_js_coverage(resetOnNavigation: unwrap_impl(resetOnNavigation), reportAnonymousScripts: unwrap_impl(reportAnonymousScripts)))
|
1761
1755
|
end
|
1762
1756
|
|
1763
1757
|
# @nodoc
|
@@ -1765,11 +1759,6 @@ module Playwright
|
|
1765
1759
|
wrap_impl(@impl.start_css_coverage(resetOnNavigation: unwrap_impl(resetOnNavigation), reportAnonymousScripts: unwrap_impl(reportAnonymousScripts)))
|
1766
1760
|
end
|
1767
1761
|
|
1768
|
-
# @nodoc
|
1769
|
-
def start_js_coverage(resetOnNavigation: nil, reportAnonymousScripts: nil)
|
1770
|
-
wrap_impl(@impl.start_js_coverage(resetOnNavigation: unwrap_impl(resetOnNavigation), reportAnonymousScripts: unwrap_impl(reportAnonymousScripts)))
|
1771
|
-
end
|
1772
|
-
|
1773
1762
|
# @nodoc
|
1774
1763
|
def stop_js_coverage
|
1775
1764
|
wrap_impl(@impl.stop_js_coverage)
|
@@ -1780,6 +1769,16 @@ module Playwright
|
|
1780
1769
|
wrap_impl(@impl.stop_css_coverage)
|
1781
1770
|
end
|
1782
1771
|
|
1772
|
+
# @nodoc
|
1773
|
+
def guid
|
1774
|
+
wrap_impl(@impl.guid)
|
1775
|
+
end
|
1776
|
+
|
1777
|
+
# @nodoc
|
1778
|
+
def owned_context=(req)
|
1779
|
+
wrap_impl(@impl.owned_context=(unwrap_impl(req)))
|
1780
|
+
end
|
1781
|
+
|
1783
1782
|
# -- inherited from EventEmitter --
|
1784
1783
|
# @nodoc
|
1785
1784
|
def once(event, callback)
|
@@ -94,13 +94,13 @@ module Playwright
|
|
94
94
|
end
|
95
95
|
|
96
96
|
# @nodoc
|
97
|
-
def
|
98
|
-
wrap_impl(@impl.
|
97
|
+
def electron
|
98
|
+
wrap_impl(@impl.electron)
|
99
99
|
end
|
100
100
|
|
101
101
|
# @nodoc
|
102
|
-
def
|
103
|
-
wrap_impl(@impl.
|
102
|
+
def android
|
103
|
+
wrap_impl(@impl.android)
|
104
104
|
end
|
105
105
|
|
106
106
|
# -- inherited from EventEmitter --
|
data/lib/playwright_api/route.rb
CHANGED
@@ -13,7 +13,7 @@ module Playwright
|
|
13
13
|
end
|
14
14
|
|
15
15
|
#
|
16
|
-
#
|
16
|
+
# Sends route's request to the network with optional overrides.
|
17
17
|
#
|
18
18
|
# **Usage**
|
19
19
|
#
|
@@ -33,18 +33,22 @@ module Playwright
|
|
33
33
|
# **Details**
|
34
34
|
#
|
35
35
|
# Note that any overrides such as `url` or `headers` only apply to the request being routed. If this request results in a redirect, overrides will not be applied to the new redirected request. If you want to propagate a header through redirects, use the combination of [`method: Route.fetch`] and [`method: Route.fulfill`] instead.
|
36
|
+
#
|
37
|
+
# [`method: Route.continue`] will immediately send the request to the network, other matching handlers won't be invoked. Use [`method: Route.fallback`] If you want next matching handler in the chain to be invoked.
|
36
38
|
def continue(headers: nil, method: nil, postData: nil, url: nil)
|
37
39
|
wrap_impl(@impl.continue(headers: unwrap_impl(headers), method: unwrap_impl(method), postData: unwrap_impl(postData), url: unwrap_impl(url)))
|
38
40
|
end
|
39
41
|
|
42
|
+
#
|
43
|
+
# Continues route's request with optional overrides. The method is similar to [`method: Route.continue`] with the difference that other matching handlers will be invoked before sending the request.
|
44
|
+
#
|
45
|
+
# **Usage**
|
40
46
|
#
|
41
47
|
# When several routes match the given pattern, they run in the order opposite to their registration.
|
42
48
|
# That way the last registered route can always override all the previous ones. In the example below,
|
43
49
|
# request will be handled by the bottom-most handler first, then it'll fall back to the previous one and
|
44
50
|
# in the end will be aborted by the first registered route.
|
45
51
|
#
|
46
|
-
# **Usage**
|
47
|
-
#
|
48
52
|
# ```python sync
|
49
53
|
# page.route("**/*", lambda route: route.abort()) # Runs last.
|
50
54
|
# page.route("**/*", lambda route: route.fallback()) # Runs second.
|
@@ -91,6 +95,8 @@ module Playwright
|
|
91
95
|
#
|
92
96
|
# page.route("**/*", handle)
|
93
97
|
# ```
|
98
|
+
#
|
99
|
+
# Use [`method: Route.continue`] to immediately send the request to the network, other matching handlers won't be invoked in that case.
|
94
100
|
def fallback(headers: nil, method: nil, postData: nil, url: nil)
|
95
101
|
wrap_impl(@impl.fallback(headers: unwrap_impl(headers), method: unwrap_impl(method), postData: unwrap_impl(postData), url: unwrap_impl(url)))
|
96
102
|
end
|
@@ -47,13 +47,13 @@ module Playwright
|
|
47
47
|
end
|
48
48
|
|
49
49
|
# @nodoc
|
50
|
-
def
|
51
|
-
wrap_impl(@impl.
|
50
|
+
def context=(req)
|
51
|
+
wrap_impl(@impl.context=(unwrap_impl(req)))
|
52
52
|
end
|
53
53
|
|
54
54
|
# @nodoc
|
55
|
-
def
|
56
|
-
wrap_impl(@impl.
|
55
|
+
def page=(req)
|
56
|
+
wrap_impl(@impl.page=(unwrap_impl(req)))
|
57
57
|
end
|
58
58
|
|
59
59
|
# -- inherited from EventEmitter --
|
data/sig/playwright.rbs
CHANGED
@@ -546,14 +546,14 @@ module Playwright
|
|
546
546
|
end
|
547
547
|
|
548
548
|
class APIRequestContext
|
549
|
-
def delete: (String url, ?data: (String | String | untyped), ?failOnStatusCode: bool, ?form: Hash[untyped, untyped], ?headers: Hash[untyped, untyped], ?ignoreHTTPSErrors: bool, ?maxRedirects: Integer, ?maxRetries: Integer, ?multipart: Hash[untyped, untyped], ?params: Hash[untyped, untyped], ?timeout: Float) -> APIResponse
|
549
|
+
def delete: (String url, ?data: (String | String | untyped), ?failOnStatusCode: bool, ?form: Hash[untyped, untyped], ?headers: Hash[untyped, untyped], ?ignoreHTTPSErrors: bool, ?maxRedirects: Integer, ?maxRetries: Integer, ?multipart: Hash[untyped, untyped], ?params: (Hash[untyped, untyped] | String), ?timeout: Float) -> APIResponse
|
550
550
|
def dispose: (?reason: String) -> void
|
551
|
-
def fetch: ((String | Request) urlOrRequest, ?data: (String | String | untyped), ?failOnStatusCode: bool, ?form: Hash[untyped, untyped], ?headers: Hash[untyped, untyped], ?ignoreHTTPSErrors: bool, ?maxRedirects: Integer, ?maxRetries: Integer, ?method: String, ?multipart: Hash[untyped, untyped], ?params: Hash[untyped, untyped], ?timeout: Float) -> APIResponse
|
552
|
-
def get: (String url, ?data: (String | String | untyped), ?failOnStatusCode: bool, ?form: Hash[untyped, untyped], ?headers: Hash[untyped, untyped], ?ignoreHTTPSErrors: bool, ?maxRedirects: Integer, ?maxRetries: Integer, ?multipart: Hash[untyped, untyped], ?params: Hash[untyped, untyped], ?timeout: Float) -> APIResponse
|
553
|
-
def head: (String url, ?data: (String | String | untyped), ?failOnStatusCode: bool, ?form: Hash[untyped, untyped], ?headers: Hash[untyped, untyped], ?ignoreHTTPSErrors: bool, ?maxRedirects: Integer, ?maxRetries: Integer, ?multipart: Hash[untyped, untyped], ?params: Hash[untyped, untyped], ?timeout: Float) -> APIResponse
|
554
|
-
def patch: (String url, ?data: (String | String | untyped), ?failOnStatusCode: bool, ?form: Hash[untyped, untyped], ?headers: Hash[untyped, untyped], ?ignoreHTTPSErrors: bool, ?maxRedirects: Integer, ?maxRetries: Integer, ?multipart: Hash[untyped, untyped], ?params: Hash[untyped, untyped], ?timeout: Float) -> APIResponse
|
555
|
-
def post: (String url, ?data: (String | String | untyped), ?failOnStatusCode: bool, ?form: Hash[untyped, untyped], ?headers: Hash[untyped, untyped], ?ignoreHTTPSErrors: bool, ?maxRedirects: Integer, ?maxRetries: Integer, ?multipart: Hash[untyped, untyped], ?params: Hash[untyped, untyped], ?timeout: Float) -> APIResponse
|
556
|
-
def put: (String url, ?data: (String | String | untyped), ?failOnStatusCode: bool, ?form: Hash[untyped, untyped], ?headers: Hash[untyped, untyped], ?ignoreHTTPSErrors: bool, ?maxRedirects: Integer, ?maxRetries: Integer, ?multipart: Hash[untyped, untyped], ?params: Hash[untyped, untyped], ?timeout: Float) -> APIResponse
|
551
|
+
def fetch: ((String | Request) urlOrRequest, ?data: (String | String | untyped), ?failOnStatusCode: bool, ?form: Hash[untyped, untyped], ?headers: Hash[untyped, untyped], ?ignoreHTTPSErrors: bool, ?maxRedirects: Integer, ?maxRetries: Integer, ?method: String, ?multipart: Hash[untyped, untyped], ?params: (Hash[untyped, untyped] | String), ?timeout: Float) -> APIResponse
|
552
|
+
def get: (String url, ?data: (String | String | untyped), ?failOnStatusCode: bool, ?form: Hash[untyped, untyped], ?headers: Hash[untyped, untyped], ?ignoreHTTPSErrors: bool, ?maxRedirects: Integer, ?maxRetries: Integer, ?multipart: Hash[untyped, untyped], ?params: (Hash[untyped, untyped] | String), ?timeout: Float) -> APIResponse
|
553
|
+
def head: (String url, ?data: (String | String | untyped), ?failOnStatusCode: bool, ?form: Hash[untyped, untyped], ?headers: Hash[untyped, untyped], ?ignoreHTTPSErrors: bool, ?maxRedirects: Integer, ?maxRetries: Integer, ?multipart: Hash[untyped, untyped], ?params: (Hash[untyped, untyped] | String), ?timeout: Float) -> APIResponse
|
554
|
+
def patch: (String url, ?data: (String | String | untyped), ?failOnStatusCode: bool, ?form: Hash[untyped, untyped], ?headers: Hash[untyped, untyped], ?ignoreHTTPSErrors: bool, ?maxRedirects: Integer, ?maxRetries: Integer, ?multipart: Hash[untyped, untyped], ?params: (Hash[untyped, untyped] | String), ?timeout: Float) -> APIResponse
|
555
|
+
def post: (String url, ?data: (String | String | untyped), ?failOnStatusCode: bool, ?form: Hash[untyped, untyped], ?headers: Hash[untyped, untyped], ?ignoreHTTPSErrors: bool, ?maxRedirects: Integer, ?maxRetries: Integer, ?multipart: Hash[untyped, untyped], ?params: (Hash[untyped, untyped] | String), ?timeout: Float) -> APIResponse
|
556
|
+
def put: (String url, ?data: (String | String | untyped), ?failOnStatusCode: bool, ?form: Hash[untyped, untyped], ?headers: Hash[untyped, untyped], ?ignoreHTTPSErrors: bool, ?maxRedirects: Integer, ?maxRetries: Integer, ?multipart: Hash[untyped, untyped], ?params: (Hash[untyped, untyped] | String), ?timeout: Float) -> APIResponse
|
557
557
|
end
|
558
558
|
|
559
559
|
class LocatorAssertions
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: playwright-ruby-client
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.47.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- YusukeIwaki
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-
|
11
|
+
date: 2024-09-14 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: concurrent-ruby
|
@@ -413,5 +413,5 @@ requirements: []
|
|
413
413
|
rubygems_version: 3.3.27
|
414
414
|
signing_key:
|
415
415
|
specification_version: 4
|
416
|
-
summary: The Ruby binding of playwright driver 1.
|
416
|
+
summary: The Ruby binding of playwright driver 1.47.1
|
417
417
|
test_files: []
|