playwright-ruby-client 1.15.beta1 → 1.15.1

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.
Files changed (76) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +10 -14
  3. data/documentation/docs/api/browser.md +2 -0
  4. data/documentation/docs/api/browser_context.md +5 -1
  5. data/documentation/docs/api/browser_type.md +1 -0
  6. data/documentation/docs/api/element_handle.md +27 -1
  7. data/documentation/docs/api/experimental/android_device.md +1 -0
  8. data/documentation/docs/api/fetch_request.md +10 -0
  9. data/documentation/docs/api/frame.md +28 -0
  10. data/documentation/docs/api/locator.md +29 -0
  11. data/documentation/docs/api/mouse.md +11 -0
  12. data/documentation/docs/api/page.md +35 -2
  13. data/documentation/docs/api/request.md +34 -1
  14. data/documentation/docs/api/response.md +37 -2
  15. data/documentation/docs/api/tracing.md +42 -8
  16. data/documentation/docs/article/getting_started.md +10 -1
  17. data/documentation/docs/article/guides/download_playwright_driver.md +9 -0
  18. data/documentation/docs/article/guides/inspector.md +1 -1
  19. data/documentation/docs/article/guides/playwright_on_alpine_linux.md +56 -3
  20. data/documentation/docs/article/guides/rails_integration.md +4 -2
  21. data/documentation/docs/article/guides/rails_integration_with_null_driver.md +86 -0
  22. data/documentation/docs/article/guides/recording_video.md +1 -1
  23. data/documentation/docs/article/guides/semi_automation.md +1 -1
  24. data/documentation/docs/article/guides/use_storage_state.md +1 -1
  25. data/documentation/docs/include/api_coverage.md +22 -0
  26. data/documentation/docusaurus.config.js +1 -0
  27. data/documentation/package.json +2 -2
  28. data/documentation/src/pages/index.js +0 -1
  29. data/documentation/static/img/playwright-ruby-client.png +0 -0
  30. data/documentation/yarn.lock +625 -549
  31. data/lib/playwright/channel.rb +36 -2
  32. data/lib/playwright/channel_owners/artifact.rb +6 -2
  33. data/lib/playwright/channel_owners/browser.rb +4 -0
  34. data/lib/playwright/channel_owners/browser_context.rb +21 -14
  35. data/lib/playwright/channel_owners/element_handle.rb +10 -2
  36. data/lib/playwright/channel_owners/fetch_request.rb +4 -0
  37. data/lib/playwright/channel_owners/frame.rb +8 -0
  38. data/lib/playwright/channel_owners/page.rb +20 -4
  39. data/lib/playwright/channel_owners/request.rb +53 -17
  40. data/lib/playwright/channel_owners/response.rb +48 -5
  41. data/lib/playwright/connection.rb +5 -3
  42. data/lib/playwright/http_headers.rb +0 -6
  43. data/lib/playwright/locator_impl.rb +8 -0
  44. data/lib/playwright/mouse_impl.rb +9 -0
  45. data/lib/playwright/raw_headers.rb +61 -0
  46. data/lib/playwright/{route_handler_entry.rb → route_handler.rb} +30 -2
  47. data/lib/playwright/tracing_impl.rb +18 -7
  48. data/lib/playwright/transport.rb +2 -0
  49. data/lib/playwright/utils.rb +8 -0
  50. data/lib/playwright/version.rb +2 -2
  51. data/lib/playwright/web_socket_transport.rb +2 -0
  52. data/lib/playwright.rb +2 -1
  53. data/lib/playwright_api/android.rb +6 -6
  54. data/lib/playwright_api/android_device.rb +10 -9
  55. data/lib/playwright_api/browser.rb +10 -8
  56. data/lib/playwright_api/browser_context.rb +12 -8
  57. data/lib/playwright_api/browser_type.rb +8 -7
  58. data/lib/playwright_api/cdp_session.rb +7 -7
  59. data/lib/playwright_api/console_message.rb +6 -6
  60. data/lib/playwright_api/dialog.rb +6 -6
  61. data/lib/playwright_api/element_handle.rb +31 -8
  62. data/lib/playwright_api/fetch_request.rb +74 -0
  63. data/lib/playwright_api/frame.rb +31 -6
  64. data/lib/playwright_api/js_handle.rb +6 -6
  65. data/lib/playwright_api/locator.rb +26 -0
  66. data/lib/playwright_api/mouse.rb +8 -0
  67. data/lib/playwright_api/page.rb +40 -10
  68. data/lib/playwright_api/playwright.rb +6 -6
  69. data/lib/playwright_api/request.rb +30 -4
  70. data/lib/playwright_api/response.rb +31 -8
  71. data/lib/playwright_api/route.rb +6 -6
  72. data/lib/playwright_api/selectors.rb +6 -6
  73. data/lib/playwright_api/tracing.rb +33 -4
  74. data/lib/playwright_api/web_socket.rb +6 -6
  75. data/lib/playwright_api/worker.rb +6 -6
  76. metadata +12 -6
@@ -40,6 +40,9 @@ module Playwright
40
40
  #
41
41
  # # Works because we explicitly tell locator to pick the first element:
42
42
  # page.locator('button').first.click()
43
+ #
44
+ # # Works because count knows what to do with multiple matches:
45
+ # page.locator('button').count()
43
46
  # ```
44
47
  class Locator < PlaywrightApi
45
48
 
@@ -435,6 +438,29 @@ module Playwright
435
438
  wrap_impl(@impl.select_text(force: unwrap_impl(force), timeout: unwrap_impl(timeout)))
436
439
  end
437
440
 
441
+ # This method checks or unchecks an element by performing the following steps:
442
+ # 1. Ensure that matched element is a checkbox or a radio input. If not, this method throws.
443
+ # 1. If the element already has the right checked state, this method returns immediately.
444
+ # 1. Wait for [actionability](./actionability.md) checks on the matched element, unless `force` option is set. If the
445
+ # element is detached during the checks, the whole action is retried.
446
+ # 1. Scroll the element into view if needed.
447
+ # 1. Use [`property: Page.mouse`] to click in the center of the element.
448
+ # 1. Wait for initiated navigations to either succeed or fail, unless `noWaitAfter` option is set.
449
+ # 1. Ensure that the element is now checked or unchecked. If not, this method throws.
450
+ #
451
+ # When all steps combined have not finished during the specified `timeout`, this method throws a `TimeoutError`. Passing
452
+ # zero timeout disables this.
453
+ def set_checked(
454
+ checked,
455
+ force: nil,
456
+ noWaitAfter: nil,
457
+ position: nil,
458
+ timeout: nil,
459
+ trial: nil)
460
+ wrap_impl(@impl.set_checked(unwrap_impl(checked), force: unwrap_impl(force), noWaitAfter: unwrap_impl(noWaitAfter), position: unwrap_impl(position), timeout: unwrap_impl(timeout), trial: unwrap_impl(trial)))
461
+ end
462
+ alias_method :checked=, :set_checked
463
+
438
464
  # This method expects `element` to point to an
439
465
  # [input element](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input).
440
466
  #
@@ -45,5 +45,13 @@ module Playwright
45
45
  def up(button: nil, clickCount: nil)
46
46
  wrap_impl(@impl.up(button: unwrap_impl(button), clickCount: unwrap_impl(clickCount)))
47
47
  end
48
+
49
+ # Dispatches a `wheel` event.
50
+ #
51
+ # > NOTE: Wheel events may cause scrolling if they are not handled, and this method does not wait for the scrolling to
52
+ # finish before returning.
53
+ def wheel(deltaX, deltaY)
54
+ wrap_impl(@impl.wheel(unwrap_impl(deltaX), unwrap_impl(deltaY)))
55
+ end
48
56
  end
49
57
  end
@@ -284,8 +284,8 @@ module Playwright
284
284
  # # → False
285
285
  # page.evaluate("matchMedia('(prefers-color-scheme: no-preference)').matches")
286
286
  # ```
287
- def emulate_media(colorScheme: nil, media: nil, reducedMotion: nil)
288
- wrap_impl(@impl.emulate_media(colorScheme: unwrap_impl(colorScheme), media: unwrap_impl(media), reducedMotion: unwrap_impl(reducedMotion)))
287
+ def emulate_media(colorScheme: nil, forcedColors: nil, media: nil, reducedMotion: nil)
288
+ wrap_impl(@impl.emulate_media(colorScheme: unwrap_impl(colorScheme), forcedColors: unwrap_impl(forcedColors), media: unwrap_impl(media), reducedMotion: unwrap_impl(reducedMotion)))
289
289
  end
290
290
 
291
291
  # The method finds an element matching the specified selector within the page and passes it as a first argument to
@@ -818,6 +818,9 @@ module Playwright
818
818
  # Once routing is enabled, every request matching the url pattern will stall unless it's continued, fulfilled or aborted.
819
819
  #
820
820
  # > NOTE: The handler will only be called for the first url if the response is a redirect.
821
+ # > NOTE: [`method: Page.route`] will not intercept requests intercepted by Service Worker. See
822
+ # [this](https://github.com/microsoft/playwright/issues/1090) issue. We recommend disabling Service Workers when using
823
+ # request interception. Via `await context.addInitScript(() => delete window.navigator.serviceWorker);`
821
824
  #
822
825
  # An example of a naive handler that aborts all image requests:
823
826
  #
@@ -855,8 +858,8 @@ module Playwright
855
858
  # To remove a route with its handler you can use [`method: Page.unroute`].
856
859
  #
857
860
  # > NOTE: Enabling routing disables http cache.
858
- def route(url, handler)
859
- wrap_impl(@impl.route(unwrap_impl(url), unwrap_impl(handler)))
861
+ def route(url, handler, times: nil)
862
+ wrap_impl(@impl.route(unwrap_impl(url), unwrap_impl(handler), times: unwrap_impl(times)))
860
863
  end
861
864
 
862
865
  # Returns the buffer with the captured screenshot.
@@ -905,6 +908,33 @@ module Playwright
905
908
  wrap_impl(@impl.select_option(unwrap_impl(selector), element: unwrap_impl(element), index: unwrap_impl(index), value: unwrap_impl(value), label: unwrap_impl(label), force: unwrap_impl(force), noWaitAfter: unwrap_impl(noWaitAfter), strict: unwrap_impl(strict), timeout: unwrap_impl(timeout)))
906
909
  end
907
910
 
911
+ # This method checks or unchecks an element matching `selector` by performing the following steps:
912
+ # 1. Find an element matching `selector`. If there is none, wait until a matching element is attached to the DOM.
913
+ # 1. Ensure that matched element is a checkbox or a radio input. If not, this method throws.
914
+ # 1. If the element already has the right checked state, this method returns immediately.
915
+ # 1. Wait for [actionability](./actionability.md) checks on the matched element, unless `force` option is set. If the
916
+ # element is detached during the checks, the whole action is retried.
917
+ # 1. Scroll the element into view if needed.
918
+ # 1. Use [`property: Page.mouse`] to click in the center of the element.
919
+ # 1. Wait for initiated navigations to either succeed or fail, unless `noWaitAfter` option is set.
920
+ # 1. Ensure that the element is now checked or unchecked. If not, this method throws.
921
+ #
922
+ # When all steps combined have not finished during the specified `timeout`, this method throws a `TimeoutError`. Passing
923
+ # zero timeout disables this.
924
+ #
925
+ # Shortcut for main frame's [`method: Frame.setChecked`].
926
+ def set_checked(
927
+ selector,
928
+ checked,
929
+ force: nil,
930
+ noWaitAfter: nil,
931
+ position: nil,
932
+ strict: nil,
933
+ timeout: nil,
934
+ trial: nil)
935
+ wrap_impl(@impl.set_checked(unwrap_impl(selector), unwrap_impl(checked), force: unwrap_impl(force), noWaitAfter: unwrap_impl(noWaitAfter), position: unwrap_impl(position), strict: unwrap_impl(strict), timeout: unwrap_impl(timeout), trial: unwrap_impl(trial)))
936
+ end
937
+
908
938
  def set_content(html, timeout: nil, waitUntil: nil)
909
939
  wrap_impl(@impl.set_content(unwrap_impl(html), timeout: unwrap_impl(timeout), waitUntil: unwrap_impl(waitUntil)))
910
940
  end
@@ -1350,12 +1380,6 @@ module Playwright
1350
1380
  wrap_impl(@impl.guid)
1351
1381
  end
1352
1382
 
1353
- # -- inherited from EventEmitter --
1354
- # @nodoc
1355
- def on(event, callback)
1356
- event_emitter_proxy.on(event, callback)
1357
- end
1358
-
1359
1383
  # -- inherited from EventEmitter --
1360
1384
  # @nodoc
1361
1385
  def off(event, callback)
@@ -1368,6 +1392,12 @@ module Playwright
1368
1392
  event_emitter_proxy.once(event, callback)
1369
1393
  end
1370
1394
 
1395
+ # -- inherited from EventEmitter --
1396
+ # @nodoc
1397
+ def on(event, callback)
1398
+ event_emitter_proxy.on(event, callback)
1399
+ end
1400
+
1371
1401
  private def event_emitter_proxy
1372
1402
  @event_emitter_proxy ||= EventEmitterProxy.new(self, @impl)
1373
1403
  end
@@ -91,12 +91,6 @@ module Playwright
91
91
  wrap_impl(@impl.electron)
92
92
  end
93
93
 
94
- # -- inherited from EventEmitter --
95
- # @nodoc
96
- def on(event, callback)
97
- event_emitter_proxy.on(event, callback)
98
- end
99
-
100
94
  # -- inherited from EventEmitter --
101
95
  # @nodoc
102
96
  def off(event, callback)
@@ -109,6 +103,12 @@ module Playwright
109
103
  event_emitter_proxy.once(event, callback)
110
104
  end
111
105
 
106
+ # -- inherited from EventEmitter --
107
+ # @nodoc
108
+ def on(event, callback)
109
+ event_emitter_proxy.on(event, callback)
110
+ end
111
+
112
112
  private def event_emitter_proxy
113
113
  @event_emitter_proxy ||= EventEmitterProxy.new(self, @impl)
114
114
  end
@@ -14,6 +14,11 @@ module Playwright
14
14
  # request is issued to a redirected url.
15
15
  class Request < PlaywrightApi
16
16
 
17
+ # An object with all the request HTTP headers associated with this request. The header names are lower-cased.
18
+ def all_headers
19
+ wrap_impl(@impl.all_headers)
20
+ end
21
+
17
22
  # The method returns `null` unless this request has failed, as reported by `requestfailed` event.
18
23
  #
19
24
  # Example of logging of all the failed requests:
@@ -30,11 +35,22 @@ module Playwright
30
35
  wrap_impl(@impl.frame)
31
36
  end
32
37
 
33
- # An object with HTTP headers associated with the request. All header names are lower-case.
38
+ # **DEPRECATED** Incomplete list of headers as seen by the rendering engine. Use [`method: Request.allHeaders`] instead.
34
39
  def headers
35
40
  wrap_impl(@impl.headers)
36
41
  end
37
42
 
43
+ # An array with all the request HTTP headers associated with this request. Unlike [`method: Request.allHeaders`], header
44
+ # names are NOT lower-cased. Headers with multiple entries, such as `Set-Cookie`, appear in the array multiple times.
45
+ def headers_array
46
+ wrap_impl(@impl.headers_array)
47
+ end
48
+
49
+ # Returns the value of the header matching the name. The name is case insensitive.
50
+ def header_value(name)
51
+ wrap_impl(@impl.header_value(unwrap_impl(name)))
52
+ end
53
+
38
54
  # Whether this request is driving frame's navigation.
39
55
  def navigation_request?
40
56
  wrap_impl(@impl.navigation_request?)
@@ -109,6 +125,11 @@ module Playwright
109
125
  wrap_impl(@impl.response)
110
126
  end
111
127
 
128
+ # Returns resource size information for given request.
129
+ def sizes
130
+ wrap_impl(@impl.sizes)
131
+ end
132
+
112
133
  # Returns resource timing information for given request. Most of the timing values become available upon the response,
113
134
  # `responseEnd` becomes available when request finishes. Find more information at
114
135
  # [Resource Timing API](https://developer.mozilla.org/en-US/docs/Web/API/PerformanceResourceTiming).
@@ -128,10 +149,9 @@ module Playwright
128
149
  wrap_impl(@impl.url)
129
150
  end
130
151
 
131
- # -- inherited from EventEmitter --
132
152
  # @nodoc
133
- def on(event, callback)
134
- event_emitter_proxy.on(event, callback)
153
+ def header_values(name)
154
+ wrap_impl(@impl.header_values(unwrap_impl(name)))
135
155
  end
136
156
 
137
157
  # -- inherited from EventEmitter --
@@ -146,6 +166,12 @@ module Playwright
146
166
  event_emitter_proxy.once(event, callback)
147
167
  end
148
168
 
169
+ # -- inherited from EventEmitter --
170
+ # @nodoc
171
+ def on(event, callback)
172
+ event_emitter_proxy.on(event, callback)
173
+ end
174
+
149
175
  private def event_emitter_proxy
150
176
  @event_emitter_proxy ||= EventEmitterProxy.new(self, @impl)
151
177
  end
@@ -2,12 +2,17 @@ module Playwright
2
2
  # `Response` class represents responses which are received by page.
3
3
  class Response < PlaywrightApi
4
4
 
5
+ # An object with all the response HTTP headers associated with this response.
6
+ def all_headers
7
+ wrap_impl(@impl.all_headers)
8
+ end
9
+
5
10
  # Returns the buffer with response body.
6
11
  def body
7
12
  wrap_impl(@impl.body)
8
13
  end
9
14
 
10
- # Waits for this response to finish, returns failure error if request failed.
15
+ # Waits for this response to finish, returns always `null`.
11
16
  def finished
12
17
  wrap_impl(@impl.finished)
13
18
  end
@@ -17,11 +22,29 @@ module Playwright
17
22
  wrap_impl(@impl.frame)
18
23
  end
19
24
 
20
- # Returns the object with HTTP headers associated with the response. All header names are lower-case.
25
+ # **DEPRECATED** Incomplete list of headers as seen by the rendering engine. Use [`method: Response.allHeaders`] instead.
21
26
  def headers
22
27
  wrap_impl(@impl.headers)
23
28
  end
24
29
 
30
+ # An array with all the request HTTP headers associated with this response. Unlike [`method: Response.allHeaders`], header
31
+ # names are NOT lower-cased. Headers with multiple entries, such as `Set-Cookie`, appear in the array multiple times.
32
+ def headers_array
33
+ wrap_impl(@impl.headers_array)
34
+ end
35
+
36
+ # Returns the value of the header matching the name. The name is case insensitive. If multiple headers have the same name
37
+ # (except `set-cookie`), they are returned as a list separated by `, `. For `set-cookie`, the `\n` separator is used. If
38
+ # no headers are found, `null` is returned.
39
+ def header_value(name)
40
+ wrap_impl(@impl.header_value(unwrap_impl(name)))
41
+ end
42
+
43
+ # Returns all values of the headers matching the name, for example `set-cookie`. The name is case insensitive.
44
+ def header_values(name)
45
+ wrap_impl(@impl.header_values(unwrap_impl(name)))
46
+ end
47
+
25
48
  # Returns the JSON representation of response body.
26
49
  #
27
50
  # This method will throw if the response body is not parsable via `JSON.parse`.
@@ -74,12 +97,6 @@ module Playwright
74
97
  wrap_impl(@impl.ok?)
75
98
  end
76
99
 
77
- # -- inherited from EventEmitter --
78
- # @nodoc
79
- def on(event, callback)
80
- event_emitter_proxy.on(event, callback)
81
- end
82
-
83
100
  # -- inherited from EventEmitter --
84
101
  # @nodoc
85
102
  def off(event, callback)
@@ -92,6 +109,12 @@ module Playwright
92
109
  event_emitter_proxy.once(event, callback)
93
110
  end
94
111
 
112
+ # -- inherited from EventEmitter --
113
+ # @nodoc
114
+ def on(event, callback)
115
+ event_emitter_proxy.on(event, callback)
116
+ end
117
+
95
118
  private def event_emitter_proxy
96
119
  @event_emitter_proxy ||= EventEmitterProxy.new(self, @impl)
97
120
  end
@@ -56,12 +56,6 @@ module Playwright
56
56
  wrap_impl(@impl.request)
57
57
  end
58
58
 
59
- # -- inherited from EventEmitter --
60
- # @nodoc
61
- def on(event, callback)
62
- event_emitter_proxy.on(event, callback)
63
- end
64
-
65
59
  # -- inherited from EventEmitter --
66
60
  # @nodoc
67
61
  def off(event, callback)
@@ -74,6 +68,12 @@ module Playwright
74
68
  event_emitter_proxy.once(event, callback)
75
69
  end
76
70
 
71
+ # -- inherited from EventEmitter --
72
+ # @nodoc
73
+ def on(event, callback)
74
+ event_emitter_proxy.on(event, callback)
75
+ end
76
+
77
77
  private def event_emitter_proxy
78
78
  @event_emitter_proxy ||= EventEmitterProxy.new(self, @impl)
79
79
  end
@@ -43,12 +43,6 @@ module Playwright
43
43
  wrap_impl(@impl.register(unwrap_impl(name), contentScript: unwrap_impl(contentScript), path: unwrap_impl(path), script: unwrap_impl(script)))
44
44
  end
45
45
 
46
- # -- inherited from EventEmitter --
47
- # @nodoc
48
- def on(event, callback)
49
- event_emitter_proxy.on(event, callback)
50
- end
51
-
52
46
  # -- inherited from EventEmitter --
53
47
  # @nodoc
54
48
  def off(event, callback)
@@ -61,6 +55,12 @@ module Playwright
61
55
  event_emitter_proxy.once(event, callback)
62
56
  end
63
57
 
58
+ # -- inherited from EventEmitter --
59
+ # @nodoc
60
+ def on(event, callback)
61
+ event_emitter_proxy.on(event, callback)
62
+ end
63
+
64
64
  private def event_emitter_proxy
65
65
  @event_emitter_proxy ||= EventEmitterProxy.new(self, @impl)
66
66
  end
@@ -1,13 +1,14 @@
1
1
  module Playwright
2
- # API for collecting and saving Playwright traces. Playwright traces can be opened using the Playwright CLI after
3
- # Playwright script runs.
2
+ # API for collecting and saving Playwright traces. Playwright traces can be opened in [Trace Viewer](./trace-viewer.md)
3
+ # after Playwright script runs.
4
4
  #
5
- # Start with specifying the folder traces will be stored in:
5
+ # Start recording a trace before performing actions. At the end, stop tracing and save it to a file.
6
6
  #
7
7
  # ```python sync
8
8
  # browser = chromium.launch()
9
9
  # context = browser.new_context()
10
10
  # context.tracing.start(screenshots=True, snapshots=True)
11
+ # page = context.new_page()
11
12
  # page.goto("https://playwright.dev")
12
13
  # context.tracing.stop(path = "trace.zip")
13
14
  # ```
@@ -17,17 +18,45 @@ module Playwright
17
18
  #
18
19
  # ```python sync
19
20
  # context.tracing.start(name="trace", screenshots=True, snapshots=True)
21
+ # page = context.new_page()
20
22
  # page.goto("https://playwright.dev")
21
- # context.tracing.stop()
22
23
  # context.tracing.stop(path = "trace.zip")
23
24
  # ```
24
25
  def start(name: nil, screenshots: nil, snapshots: nil)
25
26
  wrap_impl(@impl.start(name: unwrap_impl(name), screenshots: unwrap_impl(screenshots), snapshots: unwrap_impl(snapshots)))
26
27
  end
27
28
 
29
+ # Start a new trace chunk. If you'd like to record multiple traces on the same `BrowserContext`, use
30
+ # [`method: Tracing.start`] once, and then create multiple trace chunks with [`method: Tracing.startChunk`] and
31
+ # [`method: Tracing.stopChunk`].
32
+ #
33
+ # ```python sync
34
+ # context.tracing.start(name="trace", screenshots=True, snapshots=True)
35
+ # page = context.new_page()
36
+ # page.goto("https://playwright.dev")
37
+ #
38
+ # context.tracing.start_chunk()
39
+ # page.click("text=Get Started")
40
+ # # Everything between start_chunk and stop_chunk will be recorded in the trace.
41
+ # context.tracing.stop_chunk(path = "trace1.zip")
42
+ #
43
+ # context.tracing.start_chunk()
44
+ # page.goto("http://example.com")
45
+ # # Save a second trace file with different actions.
46
+ # context.tracing.stop_chunk(path = "trace2.zip")
47
+ # ```
48
+ def start_chunk
49
+ wrap_impl(@impl.start_chunk)
50
+ end
51
+
28
52
  # Stop tracing.
29
53
  def stop(path: nil)
30
54
  wrap_impl(@impl.stop(path: unwrap_impl(path)))
31
55
  end
56
+
57
+ # Stop the trace chunk. See [`method: Tracing.startChunk`] for more details about multiple trace chunks.
58
+ def stop_chunk(path: nil)
59
+ wrap_impl(@impl.stop_chunk(path: unwrap_impl(path)))
60
+ end
32
61
  end
33
62
  end
@@ -27,12 +27,6 @@ module Playwright
27
27
  wrap_impl(@impl.wait_for_event(unwrap_impl(event), predicate: unwrap_impl(predicate), timeout: unwrap_impl(timeout), &wrap_block_call(block)))
28
28
  end
29
29
 
30
- # -- inherited from EventEmitter --
31
- # @nodoc
32
- def on(event, callback)
33
- event_emitter_proxy.on(event, callback)
34
- end
35
-
36
30
  # -- inherited from EventEmitter --
37
31
  # @nodoc
38
32
  def off(event, callback)
@@ -45,6 +39,12 @@ module Playwright
45
39
  event_emitter_proxy.once(event, callback)
46
40
  end
47
41
 
42
+ # -- inherited from EventEmitter --
43
+ # @nodoc
44
+ def on(event, callback)
45
+ event_emitter_proxy.on(event, callback)
46
+ end
47
+
48
48
  private def event_emitter_proxy
49
49
  @event_emitter_proxy ||= EventEmitterProxy.new(self, @impl)
50
50
  end
@@ -53,12 +53,6 @@ module Playwright
53
53
  wrap_impl(@impl.page=(unwrap_impl(req)))
54
54
  end
55
55
 
56
- # -- inherited from EventEmitter --
57
- # @nodoc
58
- def on(event, callback)
59
- event_emitter_proxy.on(event, callback)
60
- end
61
-
62
56
  # -- inherited from EventEmitter --
63
57
  # @nodoc
64
58
  def off(event, callback)
@@ -71,6 +65,12 @@ module Playwright
71
65
  event_emitter_proxy.once(event, callback)
72
66
  end
73
67
 
68
+ # -- inherited from EventEmitter --
69
+ # @nodoc
70
+ def on(event, callback)
71
+ event_emitter_proxy.on(event, callback)
72
+ end
73
+
74
74
  private def event_emitter_proxy
75
75
  @event_emitter_proxy ||= EventEmitterProxy.new(self, @impl)
76
76
  end
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.15.beta1
4
+ version: 1.15.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - YusukeIwaki
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2021-08-23 00:00:00.000000000 Z
11
+ date: 2021-11-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: concurrent-ruby
@@ -224,6 +224,7 @@ files:
224
224
  - documentation/docs/api/experimental/android_input.md
225
225
  - documentation/docs/api/experimental/android_socket.md
226
226
  - documentation/docs/api/experimental/android_web_view.md
227
+ - documentation/docs/api/fetch_request.md
227
228
  - documentation/docs/api/file_chooser.md
228
229
  - documentation/docs/api/frame.md
229
230
  - documentation/docs/api/js_handle.md
@@ -248,6 +249,7 @@ files:
248
249
  - documentation/docs/article/guides/launch_browser.md
249
250
  - documentation/docs/article/guides/playwright_on_alpine_linux.md
250
251
  - documentation/docs/article/guides/rails_integration.md
252
+ - documentation/docs/article/guides/rails_integration_with_null_driver.md
251
253
  - documentation/docs/article/guides/recording_video.md
252
254
  - documentation/docs/article/guides/semi_automation.md
253
255
  - documentation/docs/article/guides/use_storage_state.md
@@ -263,6 +265,7 @@ files:
263
265
  - documentation/src/pages/markdown-page.md
264
266
  - documentation/static/.nojekyll
265
267
  - documentation/static/img/playwright-logo.svg
268
+ - documentation/static/img/playwright-ruby-client.png
266
269
  - documentation/static/img/undraw_dropdown_menu.svg
267
270
  - documentation/static/img/undraw_web_development.svg
268
271
  - documentation/static/img/undraw_windows.svg
@@ -285,6 +288,7 @@ files:
285
288
  - lib/playwright/channel_owners/dialog.rb
286
289
  - lib/playwright/channel_owners/electron.rb
287
290
  - lib/playwright/channel_owners/element_handle.rb
291
+ - lib/playwright/channel_owners/fetch_request.rb
288
292
  - lib/playwright/channel_owners/frame.rb
289
293
  - lib/playwright/channel_owners/js_handle.rb
290
294
  - lib/playwright/channel_owners/page.rb
@@ -313,7 +317,8 @@ files:
313
317
  - lib/playwright/locator_impl.rb
314
318
  - lib/playwright/mouse_impl.rb
315
319
  - lib/playwright/playwright_api.rb
316
- - lib/playwright/route_handler_entry.rb
320
+ - lib/playwright/raw_headers.rb
321
+ - lib/playwright/route_handler.rb
317
322
  - lib/playwright/select_option_values.rb
318
323
  - lib/playwright/timeout_settings.rb
319
324
  - lib/playwright/touchscreen_impl.rb
@@ -340,6 +345,7 @@ files:
340
345
  - lib/playwright_api/dialog.rb
341
346
  - lib/playwright_api/download.rb
342
347
  - lib/playwright_api/element_handle.rb
348
+ - lib/playwright_api/fetch_request.rb
343
349
  - lib/playwright_api/file_chooser.rb
344
350
  - lib/playwright_api/frame.rb
345
351
  - lib/playwright_api/js_handle.rb
@@ -372,12 +378,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
372
378
  version: '2.4'
373
379
  required_rubygems_version: !ruby/object:Gem::Requirement
374
380
  requirements:
375
- - - ">"
381
+ - - ">="
376
382
  - !ruby/object:Gem::Version
377
- version: 1.3.1
383
+ version: '0'
378
384
  requirements: []
379
385
  rubygems_version: 3.2.22
380
386
  signing_key:
381
387
  specification_version: 4
382
- summary: The Ruby binding of playwright driver 1.15.0
388
+ summary: The Ruby binding of playwright driver 1.15.2
383
389
  test_files: []