playwright-ruby-client 1.14.beta1 → 1.15.beta1

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 (51) hide show
  1. checksums.yaml +4 -4
  2. data/documentation/docs/api/accessibility.md +16 -17
  3. data/documentation/docs/api/browser.md +2 -0
  4. data/documentation/docs/api/browser_type.md +1 -0
  5. data/documentation/docs/api/element_handle.md +4 -5
  6. data/documentation/docs/api/experimental/android.md +15 -2
  7. data/documentation/docs/api/experimental/android_device.md +1 -0
  8. data/documentation/docs/api/frame.md +62 -106
  9. data/documentation/docs/api/locator.md +41 -41
  10. data/documentation/docs/api/mouse.md +3 -4
  11. data/documentation/docs/api/page.md +6 -6
  12. data/documentation/docs/api/request.md +15 -19
  13. data/documentation/docs/api/selectors.md +29 -3
  14. data/documentation/docs/api/tracing.md +13 -12
  15. data/documentation/docs/api/worker.md +12 -11
  16. data/documentation/docs/article/guides/inspector.md +1 -1
  17. data/documentation/docs/article/guides/playwright_on_alpine_linux.md +1 -1
  18. data/documentation/docs/article/guides/semi_automation.md +1 -1
  19. data/documentation/docs/article/guides/use_storage_state.md +78 -0
  20. data/lib/playwright.rb +44 -4
  21. data/lib/playwright/channel_owners/browser_type.rb +0 -1
  22. data/lib/playwright/channel_owners/frame.rb +5 -0
  23. data/lib/playwright/channel_owners/page.rb +4 -0
  24. data/lib/playwright/channel_owners/playwright.rb +9 -0
  25. data/lib/playwright/channel_owners/request.rb +8 -8
  26. data/lib/playwright/connection.rb +3 -8
  27. data/lib/playwright/locator_impl.rb +3 -3
  28. data/lib/playwright/tracing_impl.rb +9 -8
  29. data/lib/playwright/utils.rb +0 -1
  30. data/lib/playwright/version.rb +2 -2
  31. data/lib/playwright_api/android.rb +21 -8
  32. data/lib/playwright_api/android_device.rb +8 -7
  33. data/lib/playwright_api/browser.rb +10 -8
  34. data/lib/playwright_api/browser_context.rb +6 -6
  35. data/lib/playwright_api/browser_type.rb +8 -7
  36. data/lib/playwright_api/cdp_session.rb +6 -6
  37. data/lib/playwright_api/console_message.rb +6 -6
  38. data/lib/playwright_api/dialog.rb +6 -6
  39. data/lib/playwright_api/element_handle.rb +7 -7
  40. data/lib/playwright_api/frame.rb +14 -14
  41. data/lib/playwright_api/js_handle.rb +6 -6
  42. data/lib/playwright_api/locator.rb +16 -3
  43. data/lib/playwright_api/page.rb +13 -13
  44. data/lib/playwright_api/playwright.rb +6 -6
  45. data/lib/playwright_api/request.rb +6 -6
  46. data/lib/playwright_api/response.rb +6 -6
  47. data/lib/playwright_api/route.rb +6 -6
  48. data/lib/playwright_api/selectors.rb +38 -7
  49. data/lib/playwright_api/web_socket.rb +6 -6
  50. data/lib/playwright_api/worker.rb +6 -6
  51. metadata +4 -3
@@ -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 once(event, callback)
39
- event_emitter_proxy.once(event, callback)
40
- end
41
-
42
36
  # -- inherited from EventEmitter --
43
37
  # @nodoc
44
38
  def on(event, callback)
@@ -51,6 +45,12 @@ module Playwright
51
45
  event_emitter_proxy.off(event, callback)
52
46
  end
53
47
 
48
+ # -- inherited from EventEmitter --
49
+ # @nodoc
50
+ def once(event, callback)
51
+ event_emitter_proxy.once(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 once(event, callback)
29
- event_emitter_proxy.once(event, callback)
30
- end
31
-
32
26
  # -- inherited from EventEmitter --
33
27
  # @nodoc
34
28
  def on(event, callback)
@@ -41,6 +35,12 @@ module Playwright
41
35
  event_emitter_proxy.off(event, callback)
42
36
  end
43
37
 
38
+ # -- inherited from EventEmitter --
39
+ # @nodoc
40
+ def once(event, callback)
41
+ event_emitter_proxy.once(event, callback)
42
+ end
43
+
44
44
  private def event_emitter_proxy
45
45
  @event_emitter_proxy ||= EventEmitterProxy.new(self, @impl)
46
46
  end
@@ -58,12 +58,6 @@ module Playwright
58
58
  wrap_impl(@impl.accept_async(promptText: unwrap_impl(promptText)))
59
59
  end
60
60
 
61
- # -- inherited from EventEmitter --
62
- # @nodoc
63
- def once(event, callback)
64
- event_emitter_proxy.once(event, callback)
65
- end
66
-
67
61
  # -- inherited from EventEmitter --
68
62
  # @nodoc
69
63
  def on(event, callback)
@@ -76,6 +70,12 @@ module Playwright
76
70
  event_emitter_proxy.off(event, callback)
77
71
  end
78
72
 
73
+ # -- inherited from EventEmitter --
74
+ # @nodoc
75
+ def once(event, callback)
76
+ event_emitter_proxy.once(event, callback)
77
+ end
78
+
79
79
  private def event_emitter_proxy
80
80
  @event_emitter_proxy ||= EventEmitterProxy.new(self, @impl)
81
81
  end
@@ -268,7 +268,7 @@ module Playwright
268
268
  wrap_impl(@impl.inner_text)
269
269
  end
270
270
 
271
- # Returns `input.value` for `<input>` or `<textarea>` element. Throws for non-input elements.
271
+ # Returns `input.value` for `<input>` or `<textarea>` or `<select>` element. Throws for non-input elements.
272
272
  def input_value(timeout: nil)
273
273
  wrap_impl(@impl.input_value(timeout: unwrap_impl(timeout)))
274
274
  end
@@ -529,12 +529,6 @@ module Playwright
529
529
  wrap_impl(@impl.wait_for_selector(unwrap_impl(selector), state: unwrap_impl(state), timeout: unwrap_impl(timeout)))
530
530
  end
531
531
 
532
- # -- inherited from EventEmitter --
533
- # @nodoc
534
- def once(event, callback)
535
- event_emitter_proxy.once(event, callback)
536
- end
537
-
538
532
  # -- inherited from EventEmitter --
539
533
  # @nodoc
540
534
  def on(event, callback)
@@ -547,6 +541,12 @@ module Playwright
547
541
  event_emitter_proxy.off(event, callback)
548
542
  end
549
543
 
544
+ # -- inherited from EventEmitter --
545
+ # @nodoc
546
+ def once(event, callback)
547
+ event_emitter_proxy.once(event, callback)
548
+ end
549
+
550
550
  private def event_emitter_proxy
551
551
  @event_emitter_proxy ||= EventEmitterProxy.new(self, @impl)
552
552
  end
@@ -173,10 +173,12 @@ module Playwright
173
173
  target,
174
174
  force: nil,
175
175
  noWaitAfter: nil,
176
+ sourcePosition: nil,
176
177
  strict: nil,
178
+ targetPosition: nil,
177
179
  timeout: nil,
178
180
  trial: nil)
179
- wrap_impl(@impl.drag_and_drop(unwrap_impl(source), unwrap_impl(target), force: unwrap_impl(force), noWaitAfter: unwrap_impl(noWaitAfter), strict: unwrap_impl(strict), timeout: unwrap_impl(timeout), trial: unwrap_impl(trial)))
181
+ wrap_impl(@impl.drag_and_drop(unwrap_impl(source), unwrap_impl(target), force: unwrap_impl(force), noWaitAfter: unwrap_impl(noWaitAfter), sourcePosition: unwrap_impl(sourcePosition), strict: unwrap_impl(strict), targetPosition: unwrap_impl(targetPosition), timeout: unwrap_impl(timeout), trial: unwrap_impl(trial)))
180
182
  end
181
183
 
182
184
  # Returns the return value of `expression`.
@@ -330,18 +332,18 @@ module Playwright
330
332
  # Returns the main resource response. In case of multiple redirects, the navigation will resolve with the response of the
331
333
  # last redirect.
332
334
  #
333
- # `frame.goto` will throw an error if:
335
+ # The method will throw an error if:
334
336
  # - there's an SSL error (e.g. in case of self-signed certificates).
335
337
  # - target URL is invalid.
336
338
  # - the `timeout` is exceeded during navigation.
337
339
  # - the remote server does not respond or is unreachable.
338
340
  # - the main resource failed to load.
339
341
  #
340
- # `frame.goto` will not throw an error when any valid HTTP status code is returned by the remote server, including 404
341
- # "Not Found" and 500 "Internal Server Error". The status code for such responses can be retrieved by calling
342
+ # The method will not throw an error when any valid HTTP status code is returned by the remote server, including 404 "Not
343
+ # Found" and 500 "Internal Server Error". The status code for such responses can be retrieved by calling
342
344
  # [`method: Response.status`].
343
345
  #
344
- # > NOTE: `frame.goto` either throws an error or returns a main resource response. The only exceptions are navigation to
346
+ # > NOTE: The method either throws an error or returns a main resource response. The only exceptions are navigation to
345
347
  # `about:blank` or navigation to the same URL with a different hash, which would succeed and return `null`.
346
348
  # > NOTE: Headless mode doesn't support navigation to a PDF document. See the
347
349
  # [upstream issue](https://bugs.chromium.org/p/chromium/issues/detail?id=761295).
@@ -380,7 +382,7 @@ module Playwright
380
382
  wrap_impl(@impl.inner_text(unwrap_impl(selector), strict: unwrap_impl(strict), timeout: unwrap_impl(timeout)))
381
383
  end
382
384
 
383
- # Returns `input.value` for the selected `<input>` or `<textarea>` element. Throws for non-input elements.
385
+ # Returns `input.value` for the selected `<input>` or `<textarea>` or `<select>` element. Throws for non-input elements.
384
386
  def input_value(selector, strict: nil, timeout: nil)
385
387
  wrap_impl(@impl.input_value(unwrap_impl(selector), strict: unwrap_impl(strict), timeout: unwrap_impl(timeout)))
386
388
  end
@@ -425,8 +427,6 @@ module Playwright
425
427
  # The method returns an element locator that can be used to perform actions in the frame. Locator is resolved to the
426
428
  # element immediately before performing an action, so a series of actions on the same locator can in fact be performed on
427
429
  # different DOM elements. That would happen if the DOM structure between those actions has changed.
428
- #
429
- # Note that locator always implies visibility, so it will always be locating visible elements.
430
430
  def locator(selector)
431
431
  wrap_impl(@impl.locator(unwrap_impl(selector)))
432
432
  end
@@ -738,12 +738,6 @@ module Playwright
738
738
  wrap_impl(@impl.detached=(unwrap_impl(req)))
739
739
  end
740
740
 
741
- # -- inherited from EventEmitter --
742
- # @nodoc
743
- def once(event, callback)
744
- event_emitter_proxy.once(event, callback)
745
- end
746
-
747
741
  # -- inherited from EventEmitter --
748
742
  # @nodoc
749
743
  def on(event, callback)
@@ -756,6 +750,12 @@ module Playwright
756
750
  event_emitter_proxy.off(event, callback)
757
751
  end
758
752
 
753
+ # -- inherited from EventEmitter --
754
+ # @nodoc
755
+ def once(event, callback)
756
+ event_emitter_proxy.once(event, callback)
757
+ end
758
+
759
759
  private def event_emitter_proxy
760
760
  @event_emitter_proxy ||= EventEmitterProxy.new(self, @impl)
761
761
  end
@@ -88,12 +88,6 @@ module Playwright
88
88
  wrap_impl(@impl.to_s)
89
89
  end
90
90
 
91
- # -- inherited from EventEmitter --
92
- # @nodoc
93
- def once(event, callback)
94
- event_emitter_proxy.once(event, callback)
95
- end
96
-
97
91
  # -- inherited from EventEmitter --
98
92
  # @nodoc
99
93
  def on(event, callback)
@@ -106,6 +100,12 @@ module Playwright
106
100
  event_emitter_proxy.off(event, callback)
107
101
  end
108
102
 
103
+ # -- inherited from EventEmitter --
104
+ # @nodoc
105
+ def once(event, callback)
106
+ event_emitter_proxy.once(event, callback)
107
+ end
108
+
109
109
  private def event_emitter_proxy
110
110
  @event_emitter_proxy ||= EventEmitterProxy.new(self, @impl)
111
111
  end
@@ -28,6 +28,19 @@ module Playwright
28
28
  # locator.hover()
29
29
  # locator.click()
30
30
  # ```
31
+ #
32
+ # **Strictness**
33
+ #
34
+ # Locators are strict. This means that all operations on locators that imply some target DOM element will throw if more
35
+ # than one element matches given selector.
36
+ #
37
+ # ```python sync
38
+ # # Throws if there are several buttons in DOM:
39
+ # page.locator('button').click()
40
+ #
41
+ # # Works because we explicitly tell locator to pick the first element:
42
+ # page.locator('button').first.click()
43
+ # ```
31
44
  class Locator < PlaywrightApi
32
45
 
33
46
  # Returns an array of `node.innerText` values for all matching nodes.
@@ -197,8 +210,8 @@ module Playwright
197
210
  # The method finds all elements matching the specified locator and passes an array of matched elements as a first argument
198
211
  # to `expression`. Returns the result of `expression` invocation.
199
212
  #
200
- # If `expression` returns a [Promise], then [`Locator.evaluateAll`] would wait for the promise to resolve and return its
201
- # value.
213
+ # If `expression` returns a [Promise], then [`method: Locator.evaluateAll`] would wait for the promise to resolve and
214
+ # return its value.
202
215
  #
203
216
  # Examples:
204
217
  #
@@ -282,7 +295,7 @@ module Playwright
282
295
  wrap_impl(@impl.inner_text(timeout: unwrap_impl(timeout)))
283
296
  end
284
297
 
285
- # Returns `input.value` for `<input>` or `<textarea>` element. Throws for non-input elements.
298
+ # Returns `input.value` for `<input>` or `<textarea>` or `<select>` element. Throws for non-input elements.
286
299
  def input_value(timeout: nil)
287
300
  wrap_impl(@impl.input_value(timeout: unwrap_impl(timeout)))
288
301
  end
@@ -246,10 +246,12 @@ module Playwright
246
246
  target,
247
247
  force: nil,
248
248
  noWaitAfter: nil,
249
+ sourcePosition: nil,
249
250
  strict: nil,
251
+ targetPosition: nil,
250
252
  timeout: nil,
251
253
  trial: nil)
252
- wrap_impl(@impl.drag_and_drop(unwrap_impl(source), unwrap_impl(target), force: unwrap_impl(force), noWaitAfter: unwrap_impl(noWaitAfter), strict: unwrap_impl(strict), timeout: unwrap_impl(timeout), trial: unwrap_impl(trial)))
254
+ wrap_impl(@impl.drag_and_drop(unwrap_impl(source), unwrap_impl(target), force: unwrap_impl(force), noWaitAfter: unwrap_impl(noWaitAfter), sourcePosition: unwrap_impl(sourcePosition), strict: unwrap_impl(strict), targetPosition: unwrap_impl(targetPosition), timeout: unwrap_impl(timeout), trial: unwrap_impl(trial)))
253
255
  end
254
256
 
255
257
  # This method changes the `CSS media type` through the `media` argument, and/or the `'prefers-colors-scheme'` media
@@ -560,18 +562,18 @@ module Playwright
560
562
  # Returns the main resource response. In case of multiple redirects, the navigation will resolve with the response of the
561
563
  # last redirect.
562
564
  #
563
- # `page.goto` will throw an error if:
565
+ # The method will throw an error if:
564
566
  # - there's an SSL error (e.g. in case of self-signed certificates).
565
567
  # - target URL is invalid.
566
568
  # - the `timeout` is exceeded during navigation.
567
569
  # - the remote server does not respond or is unreachable.
568
570
  # - the main resource failed to load.
569
571
  #
570
- # `page.goto` will not throw an error when any valid HTTP status code is returned by the remote server, including 404 "Not
572
+ # The method will not throw an error when any valid HTTP status code is returned by the remote server, including 404 "Not
571
573
  # Found" and 500 "Internal Server Error". The status code for such responses can be retrieved by calling
572
574
  # [`method: Response.status`].
573
575
  #
574
- # > NOTE: `page.goto` either throws an error or returns a main resource response. The only exceptions are navigation to
576
+ # > NOTE: The method either throws an error or returns a main resource response. The only exceptions are navigation to
575
577
  # `about:blank` or navigation to the same URL with a different hash, which would succeed and return `null`.
576
578
  # > NOTE: Headless mode doesn't support navigation to a PDF document. See the
577
579
  # [upstream issue](https://bugs.chromium.org/p/chromium/issues/detail?id=761295).
@@ -614,7 +616,7 @@ module Playwright
614
616
  wrap_impl(@impl.inner_text(unwrap_impl(selector), strict: unwrap_impl(strict), timeout: unwrap_impl(timeout)))
615
617
  end
616
618
 
617
- # Returns `input.value` for the selected `<input>` or `<textarea>` element. Throws for non-input elements.
619
+ # Returns `input.value` for the selected `<input>` or `<textarea>` or `<select>` element. Throws for non-input elements.
618
620
  def input_value(selector, strict: nil, timeout: nil)
619
621
  wrap_impl(@impl.input_value(unwrap_impl(selector), strict: unwrap_impl(strict), timeout: unwrap_impl(timeout)))
620
622
  end
@@ -660,8 +662,6 @@ module Playwright
660
662
  # element immediately before performing an action, so a series of actions on the same locator can in fact be performed on
661
663
  # different DOM elements. That would happen if the DOM structure between those actions has changed.
662
664
  #
663
- # Note that locator always implies visibility, so it will always be locating visible elements.
664
- #
665
665
  # Shortcut for main frame's [`method: Frame.locator`].
666
666
  def locator(selector)
667
667
  wrap_impl(@impl.locator(unwrap_impl(selector)))
@@ -1350,12 +1350,6 @@ module Playwright
1350
1350
  wrap_impl(@impl.guid)
1351
1351
  end
1352
1352
 
1353
- # -- inherited from EventEmitter --
1354
- # @nodoc
1355
- def once(event, callback)
1356
- event_emitter_proxy.once(event, callback)
1357
- end
1358
-
1359
1353
  # -- inherited from EventEmitter --
1360
1354
  # @nodoc
1361
1355
  def on(event, callback)
@@ -1368,6 +1362,12 @@ module Playwright
1368
1362
  event_emitter_proxy.off(event, callback)
1369
1363
  end
1370
1364
 
1365
+ # -- inherited from EventEmitter --
1366
+ # @nodoc
1367
+ def once(event, callback)
1368
+ event_emitter_proxy.once(event, callback)
1369
+ end
1370
+
1371
1371
  private def event_emitter_proxy
1372
1372
  @event_emitter_proxy ||= EventEmitterProxy.new(self, @impl)
1373
1373
  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 once(event, callback)
97
- event_emitter_proxy.once(event, callback)
98
- end
99
-
100
94
  # -- inherited from EventEmitter --
101
95
  # @nodoc
102
96
  def on(event, callback)
@@ -109,6 +103,12 @@ module Playwright
109
103
  event_emitter_proxy.off(event, callback)
110
104
  end
111
105
 
106
+ # -- inherited from EventEmitter --
107
+ # @nodoc
108
+ def once(event, callback)
109
+ event_emitter_proxy.once(event, callback)
110
+ end
111
+
112
112
  private def event_emitter_proxy
113
113
  @event_emitter_proxy ||= EventEmitterProxy.new(self, @impl)
114
114
  end
@@ -128,12 +128,6 @@ module Playwright
128
128
  wrap_impl(@impl.url)
129
129
  end
130
130
 
131
- # -- inherited from EventEmitter --
132
- # @nodoc
133
- def once(event, callback)
134
- event_emitter_proxy.once(event, callback)
135
- end
136
-
137
131
  # -- inherited from EventEmitter --
138
132
  # @nodoc
139
133
  def on(event, callback)
@@ -146,6 +140,12 @@ module Playwright
146
140
  event_emitter_proxy.off(event, callback)
147
141
  end
148
142
 
143
+ # -- inherited from EventEmitter --
144
+ # @nodoc
145
+ def once(event, callback)
146
+ event_emitter_proxy.once(event, callback)
147
+ end
148
+
149
149
  private def event_emitter_proxy
150
150
  @event_emitter_proxy ||= EventEmitterProxy.new(self, @impl)
151
151
  end
@@ -74,12 +74,6 @@ module Playwright
74
74
  wrap_impl(@impl.ok?)
75
75
  end
76
76
 
77
- # -- inherited from EventEmitter --
78
- # @nodoc
79
- def once(event, callback)
80
- event_emitter_proxy.once(event, callback)
81
- end
82
-
83
77
  # -- inherited from EventEmitter --
84
78
  # @nodoc
85
79
  def on(event, callback)
@@ -92,6 +86,12 @@ module Playwright
92
86
  event_emitter_proxy.off(event, callback)
93
87
  end
94
88
 
89
+ # -- inherited from EventEmitter --
90
+ # @nodoc
91
+ def once(event, callback)
92
+ event_emitter_proxy.once(event, callback)
93
+ end
94
+
95
95
  private def event_emitter_proxy
96
96
  @event_emitter_proxy ||= EventEmitterProxy.new(self, @impl)
97
97
  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 once(event, callback)
62
- event_emitter_proxy.once(event, callback)
63
- end
64
-
65
59
  # -- inherited from EventEmitter --
66
60
  # @nodoc
67
61
  def on(event, callback)
@@ -74,6 +68,12 @@ module Playwright
74
68
  event_emitter_proxy.off(event, callback)
75
69
  end
76
70
 
71
+ # -- inherited from EventEmitter --
72
+ # @nodoc
73
+ def once(event, callback)
74
+ event_emitter_proxy.once(event, callback)
75
+ end
76
+
77
77
  private def event_emitter_proxy
78
78
  @event_emitter_proxy ||= EventEmitterProxy.new(self, @impl)
79
79
  end
@@ -6,18 +6,43 @@ module Playwright
6
6
  # An example of registering selector engine that queries elements based on a tag name:
7
7
  #
8
8
  # ```python sync
9
- # # FIXME: add snippet
9
+ # from playwright.sync_api import sync_playwright
10
+ #
11
+ # def run(playwright):
12
+ # tag_selector = """
13
+ # {
14
+ # // Returns the first element matching given selector in the root's subtree.
15
+ # query(root, selector) {
16
+ # return root.querySelector(selector);
17
+ # },
18
+ # // Returns all elements matching given selector in the root's subtree.
19
+ # queryAll(root, selector) {
20
+ # return Array.from(root.querySelectorAll(selector));
21
+ # }
22
+ # }"""
23
+ #
24
+ # # Register the engine. Selectors will be prefixed with "tag=".
25
+ # playwright.selectors.register("tag", tag_selector)
26
+ # browser = playwright.chromium.launch()
27
+ # page = browser.new_page()
28
+ # page.set_content('<div><button>Click me</button></div>')
29
+ #
30
+ # # Use the selector prefixed with its name.
31
+ # button = page.query_selector('tag=button')
32
+ # # Combine it with other selector engines.
33
+ # page.click('tag=div >> text="Click me"')
34
+ # # Can use it in any methods supporting selectors.
35
+ # button_count = page.eval_on_selector_all('tag=button', 'buttons => buttons.length')
36
+ # print(button_count)
37
+ # browser.close()
38
+ #
39
+ # with sync_playwright() as playwright:
40
+ # run(playwright)
10
41
  # ```
11
42
  def register(name, contentScript: nil, path: nil, script: nil)
12
43
  wrap_impl(@impl.register(unwrap_impl(name), contentScript: unwrap_impl(contentScript), path: unwrap_impl(path), script: unwrap_impl(script)))
13
44
  end
14
45
 
15
- # -- inherited from EventEmitter --
16
- # @nodoc
17
- def once(event, callback)
18
- event_emitter_proxy.once(event, callback)
19
- end
20
-
21
46
  # -- inherited from EventEmitter --
22
47
  # @nodoc
23
48
  def on(event, callback)
@@ -30,6 +55,12 @@ module Playwright
30
55
  event_emitter_proxy.off(event, callback)
31
56
  end
32
57
 
58
+ # -- inherited from EventEmitter --
59
+ # @nodoc
60
+ def once(event, callback)
61
+ event_emitter_proxy.once(event, callback)
62
+ end
63
+
33
64
  private def event_emitter_proxy
34
65
  @event_emitter_proxy ||= EventEmitterProxy.new(self, @impl)
35
66
  end