playwright-ruby-client 1.21.0 → 1.22.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (39) hide show
  1. checksums.yaml +4 -4
  2. data/documentation/docs/api/element_handle.md +19 -6
  3. data/documentation/docs/api/experimental/android.md +1 -1
  4. data/documentation/docs/api/file_chooser.md +1 -1
  5. data/documentation/docs/api/frame.md +12 -5
  6. data/documentation/docs/api/locator.md +29 -7
  7. data/documentation/docs/api/page.md +14 -7
  8. data/documentation/docs/api/route.md +2 -0
  9. data/documentation/docs/include/api_coverage.md +1 -0
  10. data/lib/playwright/javascript/value_parser.rb +17 -2
  11. data/lib/playwright/javascript/value_serializer.rb +13 -2
  12. data/lib/playwright/javascript/visitor_info.rb +26 -0
  13. data/lib/playwright/locator_impl.rb +10 -0
  14. data/lib/playwright/playwright_api.rb +26 -6
  15. data/lib/playwright/version.rb +2 -2
  16. data/lib/playwright_api/android.rb +8 -8
  17. data/lib/playwright_api/android_device.rb +6 -6
  18. data/lib/playwright_api/api_request_context.rb +6 -6
  19. data/lib/playwright_api/browser.rb +6 -6
  20. data/lib/playwright_api/browser_context.rb +10 -10
  21. data/lib/playwright_api/browser_type.rb +6 -6
  22. data/lib/playwright_api/cdp_session.rb +6 -6
  23. data/lib/playwright_api/console_message.rb +6 -6
  24. data/lib/playwright_api/dialog.rb +6 -6
  25. data/lib/playwright_api/element_handle.rb +25 -12
  26. data/lib/playwright_api/file_chooser.rb +1 -1
  27. data/lib/playwright_api/frame.rb +18 -11
  28. data/lib/playwright_api/js_handle.rb +6 -6
  29. data/lib/playwright_api/locator.rb +26 -7
  30. data/lib/playwright_api/page.rb +20 -13
  31. data/lib/playwright_api/playwright.rb +8 -8
  32. data/lib/playwright_api/request.rb +6 -6
  33. data/lib/playwright_api/response.rb +6 -6
  34. data/lib/playwright_api/route.rb +8 -6
  35. data/lib/playwright_api/selectors.rb +6 -6
  36. data/lib/playwright_api/tracing.rb +6 -6
  37. data/lib/playwright_api/web_socket.rb +6 -6
  38. data/lib/playwright_api/worker.rb +6 -6
  39. metadata +4 -3
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 5e2dee736be02c56e75b6a89e2eab014c4d205ca23688b30084ea3854f50dfda
4
- data.tar.gz: a213f955daad15c58bc1edd1b123cb6768cbc6df5ec6be0b09e537a8b6ea22ec
3
+ metadata.gz: 82040f41eb8c972a8e3415aac148c27218e9fcbb00d7e09832bd75da506d2367
4
+ data.tar.gz: a42be0ab4e00bb0ef36516474cca8220147d8c635e44c581c799ee65e396721f
5
5
  SHA512:
6
- metadata.gz: eba2fed3585b9ef5aa1b068cfc3294acc0f134e1ecccec6fae465bfd8df52c2395d02d706cb8958342c8e1af8be2066b537bc7af9eb3da1fe3748536677ba0c0
7
- data.tar.gz: 2264ea9fd32bd7b02e15453a17876c2ee5fa8d51fb5eca652242959254ead0fda4ee721e9c35a1a24c1dc005d42268fd49b4566bd844841499bb8933ba83b8a3
6
+ metadata.gz: 615d15f014ca5f175d9da7504583693903d0ebd4c3d47522bf2f5c0add5aa01f26551300834b86cd944a2eacb2ef38062c341ec14f1177b7f517a16dab6e90fe
7
+ data.tar.gz: 97de038214b07abfbeb9eece923c0b031793b8939107df5f7b37268dbb4598c188dc88c4870766cf31d0bf28416610f46c996518a2f37fc8c73d5b672f713005
@@ -330,7 +330,10 @@ Returns the `element.innerText`.
330
330
  def input_value(timeout: nil)
331
331
  ```
332
332
 
333
- Returns `input.value` for `<input>` or `<textarea>` or `<select>` element. Throws for non-input elements.
333
+ Returns `input.value` for the selected `<input>` or `<textarea>` or `<select>` element.
334
+
335
+ Throws for non-input elements. However, if the element is inside the `<label>` element that has an associated
336
+ [control](https://developer.mozilla.org/en-US/docs/Web/API/HTMLLabelElement/control), returns the value of the control.
334
337
 
335
338
  ## checked?
336
339
 
@@ -446,11 +449,15 @@ def screenshot(
446
449
  type: nil)
447
450
  ```
448
451
 
449
- Returns the buffer with the captured screenshot.
452
+ This method captures a screenshot of the page, clipped to the size and position of this particular element. If the
453
+ element is covered by other elements, it will not be actually visible on the screenshot. If the element is a scrollable
454
+ container, only the currently scrolled content will be visible on the screenshot.
450
455
 
451
456
  This method waits for the [actionability](https://playwright.dev/python/docs/actionability) checks, then scrolls element into view before taking a
452
457
  screenshot. If the element is detached from DOM, the method throws an error.
453
458
 
459
+ Returns the buffer with the captured screenshot.
460
+
454
461
  ## scroll_into_view_if_needed
455
462
 
456
463
  ```
@@ -513,6 +520,10 @@ def select_text(force: nil, timeout: nil)
513
520
  This method waits for [actionability](https://playwright.dev/python/docs/actionability) checks, then focuses the element and selects all its text
514
521
  content.
515
522
 
523
+ If the element is inside the `<label>` element that has an associated
524
+ [control](https://developer.mozilla.org/en-US/docs/Web/API/HTMLLabelElement/control), focuses and selects text in the
525
+ control instead.
526
+
516
527
  ## set_checked
517
528
 
518
529
  ```
@@ -546,11 +557,13 @@ def set_input_files(files, noWaitAfter: nil, timeout: nil)
546
557
  ```
547
558
  alias: `input_files=`
548
559
 
549
- This method expects `elementHandle` to point to an
550
- [input element](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input).
551
-
552
560
  Sets the value of the file input to these file paths or files. If some of the `filePaths` are relative paths, then they
553
- are resolved relative to the the current working directory. For empty array, clears the selected files.
561
+ are resolved relative to the current working directory. For empty array, clears the selected files.
562
+
563
+ This method expects [ElementHandle](./element_handle) to point to an
564
+ [input element](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input). However, if the element is inside the
565
+ `<label>` element that has an associated
566
+ [control](https://developer.mozilla.org/en-US/docs/Web/API/HTMLLabelElement/control), targets the control instead.
554
567
 
555
568
  ## tap_point
556
569
 
@@ -33,7 +33,7 @@ PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD=1 npm i -D playwright
33
33
  ## devices
34
34
 
35
35
  ```
36
- def devices(omitDriverInstall: nil, port: nil)
36
+ def devices(host: nil, omitDriverInstall: nil, port: nil)
37
37
  ```
38
38
 
39
39
  Returns the list of detected Android devices.
@@ -47,4 +47,4 @@ def set_files(files, noWaitAfter: nil, timeout: nil)
47
47
  alias: `files=`
48
48
 
49
49
  Sets the value of the file input this chooser is associated with. If some of the `filePaths` are relative paths, then
50
- they are resolved relative to the the current working directory. For empty array, clears the selected files.
50
+ they are resolved relative to the current working directory. For empty array, clears the selected files.
@@ -486,7 +486,10 @@ Returns `element.innerText`.
486
486
  def input_value(selector, strict: nil, timeout: nil)
487
487
  ```
488
488
 
489
- Returns `input.value` for the selected `<input>` or `<textarea>` or `<select>` element. Throws for non-input elements.
489
+ Returns `input.value` for the selected `<input>` or `<textarea>` or `<select>` element.
490
+
491
+ Throws for non-input elements. However, if the element is inside the `<label>` element that has an associated
492
+ [control](https://developer.mozilla.org/en-US/docs/Web/API/HTMLLabelElement/control), returns the value of the control.
490
493
 
491
494
  ## checked?
492
495
 
@@ -556,6 +559,8 @@ The method returns an element locator that can be used to perform actions in the
556
559
  element immediately before performing an action, so a series of actions on the same locator can in fact be performed on
557
560
  different DOM elements. That would happen if the DOM structure between those actions has changed.
558
561
 
562
+ [Learn more about locators](https://playwright.dev/python/docs/locators).
563
+
559
564
  ## name
560
565
 
561
566
  ```
@@ -724,11 +729,13 @@ def set_input_files(
724
729
  timeout: nil)
725
730
  ```
726
731
 
727
- This method expects `selector` to point to an
728
- [input element](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input).
729
-
730
732
  Sets the value of the file input to these file paths or files. If some of the `filePaths` are relative paths, then they
731
- are resolved relative to the the current working directory. For empty array, clears the selected files.
733
+ are resolved relative to the current working directory. For empty array, clears the selected files.
734
+
735
+ This method expects `selector` to point to an
736
+ [input element](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input). However, if the element is inside the
737
+ `<label>` element that has an associated
738
+ [control](https://developer.mozilla.org/en-US/docs/Web/API/HTMLLabelElement/control), targets the control instead.
732
739
 
733
740
  ## tap_point
734
741
 
@@ -285,6 +285,14 @@ instead.
285
285
 
286
286
  To send fine-grained keyboard events, use [Locator#type](./locator#type).
287
287
 
288
+ ## filter
289
+
290
+ ```
291
+ def filter(has: nil, hasText: nil)
292
+ ```
293
+
294
+ This method narrows existing locator according to the options, for example filters by text.
295
+
288
296
  ## first
289
297
 
290
298
  ```
@@ -378,7 +386,10 @@ Returns the `element.innerText`.
378
386
  def input_value(timeout: nil)
379
387
  ```
380
388
 
381
- Returns `input.value` for `<input>` or `<textarea>` or `<select>` element. Throws for non-input elements.
389
+ Returns `input.value` for the selected `<input>` or `<textarea>` or `<select>` element.
390
+
391
+ Throws for non-input elements. However, if the element is inside the `<label>` element that has an associated
392
+ [control](https://developer.mozilla.org/en-US/docs/Web/API/HTMLLabelElement/control), returns the value of the control.
382
393
 
383
394
  ## checked?
384
395
 
@@ -442,7 +453,8 @@ Returns locator to the last matching element.
442
453
  def locator(selector, has: nil, hasText: nil)
443
454
  ```
444
455
 
445
- The method finds an element matching the specified selector in the [Locator](./locator)'s subtree.
456
+ The method finds an element matching the specified selector in the [Locator](./locator)'s subtree. It also accepts filter options,
457
+ similar to [Locator#filter](./locator#filter) method.
446
458
 
447
459
  ## nth
448
460
 
@@ -500,11 +512,15 @@ def screenshot(
500
512
  type: nil)
501
513
  ```
502
514
 
503
- Returns the buffer with the captured screenshot.
515
+ This method captures a screenshot of the page, clipped to the size and position of a particular element matching the
516
+ locator. If the element is covered by other elements, it will not be actually visible on the screenshot. If the element
517
+ is a scrollable container, only the currently scrolled content will be visible on the screenshot.
504
518
 
505
519
  This method waits for the [actionability](https://playwright.dev/python/docs/actionability) checks, then scrolls element into view before taking a
506
520
  screenshot. If the element is detached from DOM, the method throws an error.
507
521
 
522
+ Returns the buffer with the captured screenshot.
523
+
508
524
  ## scroll_into_view_if_needed
509
525
 
510
526
  ```
@@ -564,6 +580,10 @@ def select_text(force: nil, timeout: nil)
564
580
  This method waits for [actionability](https://playwright.dev/python/docs/actionability) checks, then focuses the element and selects all its text
565
581
  content.
566
582
 
583
+ If the element is inside the `<label>` element that has an associated
584
+ [control](https://developer.mozilla.org/en-US/docs/Web/API/HTMLLabelElement/control), focuses and selects text in the
585
+ control instead.
586
+
567
587
  ## set_checked
568
588
 
569
589
  ```
@@ -597,11 +617,13 @@ def set_input_files(files, noWaitAfter: nil, timeout: nil)
597
617
  ```
598
618
  alias: `input_files=`
599
619
 
600
- This method expects `element` to point to an
601
- [input element](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input).
602
-
603
620
  Sets the value of the file input to these file paths or files. If some of the `filePaths` are relative paths, then they
604
- are resolved relative to the the current working directory. For empty array, clears the selected files.
621
+ are resolved relative to the current working directory. For empty array, clears the selected files.
622
+
623
+ This method expects [Locator](./locator) to point to an
624
+ [input element](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input). However, if the element is inside the
625
+ `<label>` element that has an associated
626
+ [control](https://developer.mozilla.org/en-US/docs/Web/API/HTMLLabelElement/control), targets the control instead.
605
627
 
606
628
  ## tap_point
607
629
 
@@ -642,8 +642,8 @@ Navigate to the next page in history.
642
642
  def goto(url, referer: nil, timeout: nil, waitUntil: nil)
643
643
  ```
644
644
 
645
- Returns the main resource response. In case of multiple redirects, the navigation will resolve with the response of the
646
- last redirect.
645
+ Returns the main resource response. In case of multiple redirects, the navigation will resolve with the first
646
+ non-redirect response.
647
647
 
648
648
  The method will throw an error if:
649
649
  - there's an SSL error (e.g. in case of self-signed certificates).
@@ -711,7 +711,10 @@ Returns `element.innerText`.
711
711
  def input_value(selector, strict: nil, timeout: nil)
712
712
  ```
713
713
 
714
- Returns `input.value` for the selected `<input>` or `<textarea>` or `<select>` element. Throws for non-input elements.
714
+ Returns `input.value` for the selected `<input>` or `<textarea>` or `<select>` element.
715
+
716
+ Throws for non-input elements. However, if the element is inside the `<label>` element that has an associated
717
+ [control](https://developer.mozilla.org/en-US/docs/Web/API/HTMLLabelElement/control), returns the value of the control.
715
718
 
716
719
  ## checked?
717
720
 
@@ -781,6 +784,8 @@ The method returns an element locator that can be used to perform actions on the
781
784
  element immediately before performing an action, so a series of actions on the same locator can in fact be performed on
782
785
  different DOM elements. That would happen if the DOM structure between those actions has changed.
783
786
 
787
+ [Learn more about locators](https://playwright.dev/python/docs/locators).
788
+
784
789
  Shortcut for main frame's [Frame#locator](./frame#locator).
785
790
 
786
791
  ## main_frame
@@ -1155,11 +1160,13 @@ def set_input_files(
1155
1160
  timeout: nil)
1156
1161
  ```
1157
1162
 
1158
- This method expects `selector` to point to an
1159
- [input element](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input).
1160
-
1161
1163
  Sets the value of the file input to these file paths or files. If some of the `filePaths` are relative paths, then they
1162
- are resolved relative to the the current working directory. For empty array, clears the selected files.
1164
+ are resolved relative to the current working directory. For empty array, clears the selected files.
1165
+
1166
+ This method expects `selector` to point to an
1167
+ [input element](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input). However, if the element is inside the
1168
+ `<label>` element that has an associated
1169
+ [control](https://developer.mozilla.org/en-US/docs/Web/API/HTMLLabelElement/control), targets the control instead.
1163
1170
 
1164
1171
  ## set_viewport_size
1165
1172
 
@@ -7,6 +7,8 @@ sidebar_position: 10
7
7
  Whenever a network route is set up with [Page#route](./page#route) or [BrowserContext#route](./browser_context#route), the [Route](./route) object
8
8
  allows to handle the route.
9
9
 
10
+ Learn more about [networking](https://playwright.dev/python/docs/network).
11
+
10
12
  ## abort
11
13
 
12
14
  ```
@@ -413,6 +413,7 @@
413
413
  * evaluate_all
414
414
  * evaluate_handle
415
415
  * fill
416
+ * filter
416
417
  * first
417
418
  * focus
418
419
  * frame_locator
@@ -5,6 +5,7 @@ module Playwright
5
5
  class ValueParser
6
6
  def initialize(hash)
7
7
  @hash = hash
8
+ @refs = {}
8
9
  end
9
10
 
10
11
  # @return [Hash]
@@ -23,6 +24,10 @@ module Playwright
23
24
  return hash[key] if hash.key?(key)
24
25
  end
25
26
 
27
+ if hash.key?('ref')
28
+ return @refs[hash['ref']]
29
+ end
30
+
26
31
  if hash.key?('v')
27
32
  return case hash['v']
28
33
  when 'undefined'
@@ -55,11 +60,21 @@ module Playwright
55
60
  end
56
61
 
57
62
  if hash.key?('a')
58
- return hash['a'].map { |value| parse_hash(value) }
63
+ result = []
64
+ if hash['id']
65
+ @refs[hash['id']] = result
66
+ end
67
+ hash['a'].each { |value| result << parse_hash(value) }
68
+ return result
59
69
  end
60
70
 
61
71
  if hash.key?('o')
62
- return hash['o'].map { |obj| [obj['k'], parse_hash(obj['v'])] }.to_h
72
+ result = {}
73
+ if hash['id']
74
+ @refs[hash['id']] = result
75
+ end
76
+ hash['o'].each { |obj| result[obj['k']] = parse_hash(obj['v']) }
77
+ return result
63
78
  end
64
79
 
65
80
  if hash.key?('h')
@@ -1,8 +1,11 @@
1
+ require_relative './visitor_info'
2
+
1
3
  module Playwright
2
4
  module JavaScript
3
5
  class ValueSerializer
4
6
  def initialize(ruby_value)
5
7
  @value = ruby_value
8
+ @visited = VisitorInfo.new
6
9
  end
7
10
 
8
11
  # @return [Hash]
@@ -41,10 +44,18 @@ module Playwright
41
44
  flags << 'ms' if (value.options & Regexp::MULTILINE) != 0
42
45
  flags << 'i' if (value.options & Regexp::IGNORECASE) != 0
43
46
  { r: { p: value.source, f: flags.join('') } }
47
+ when -> (value) { @visited.ref(value) }
48
+ { ref: @visited.ref(value) }
44
49
  when Array
45
- { a: value.map { |v| serialize_value(v) } }
50
+ id = @visited.log(value)
51
+ result = []
52
+ value.each { |v| result << serialize_value(v) }
53
+ { a: result, id: id }
46
54
  when Hash
47
- { o: value.map { |key, v| { k: key, v: serialize_value(v) } } }
55
+ id = @visited.log(value)
56
+ result = []
57
+ value.each { |key, v| result << { k: key, v: serialize_value(v) } }
58
+ { o: result, id: id }
48
59
  else
49
60
  raise ArgumentError.new("Unexpected value: #{value}")
50
61
  end
@@ -0,0 +1,26 @@
1
+ module Playwright
2
+ module JavaScript
3
+ class VisitorInfo
4
+ def initialize
5
+ @data = {}
6
+ @last_id = 0
7
+ end
8
+
9
+ # returns [Integer|nil]
10
+ def ref(object)
11
+ @data[object]
12
+ end
13
+
14
+ def log(object)
15
+ if @data[object]
16
+ raise ArgumentError.new("Already visited")
17
+ end
18
+
19
+ id = @last_id + 1
20
+ @last_id = id # FIXME: should thread-safe
21
+
22
+ @data[object] = id
23
+ end
24
+ end
25
+ end
26
+ end
@@ -239,6 +239,16 @@ module Playwright
239
239
  @frame.query_selector_all(@selector)
240
240
  end
241
241
 
242
+ def filter(has: nil, hasText: nil)
243
+ LocatorImpl.new(
244
+ frame: @frame,
245
+ timeout_settings: @timeout_settings,
246
+ selector: @selector,
247
+ hasText: hasText,
248
+ has: has,
249
+ )
250
+ end
251
+
242
252
  def first
243
253
  LocatorImpl.new(
244
254
  frame: @frame,
@@ -122,21 +122,41 @@ module Playwright
122
122
  }
123
123
  end
124
124
 
125
- private def wrap_impl(object)
125
+ private def wrap_impl(object, visited: {})
126
126
  if object.is_a?(Array)
127
- object.map { |obj| wrap_impl(obj) }
127
+ unless visited[object]
128
+ visited[object] = []
129
+ object.each { |obj| visited[object] << wrap_impl(obj) }
130
+ end
131
+ visited[object]
128
132
  elsif object.is_a?(Hash)
129
- object.map { |key, obj| [key, wrap_impl(obj)] }.to_h
133
+ unless visited[object]
134
+ visited[object] = {}
135
+ object.each do |key, obj|
136
+ visited[object][key] = wrap_impl(obj, visited: visited)
137
+ end
138
+ end
139
+ visited[object]
130
140
  else
131
141
  ::Playwright::PlaywrightApi.wrap(object)
132
142
  end
133
143
  end
134
144
 
135
- private def unwrap_impl(object)
145
+ private def unwrap_impl(object, visited: {})
136
146
  if object.is_a?(Array)
137
- object.map { |obj| unwrap_impl(obj) }
147
+ unless visited[object]
148
+ visited[object] = []
149
+ object.each { |obj| visited[object] << unwrap_impl(obj) }
150
+ end
151
+ visited[object]
138
152
  elsif object.is_a?(Hash)
139
- object.map { |key, obj| [key, unwrap_impl(obj)] }.to_h
153
+ unless visited[object]
154
+ visited[object] = {}
155
+ object.each do |key, obj|
156
+ visited[object][key] = unwrap_impl(obj, visited: visited)
157
+ end
158
+ end
159
+ visited[object]
140
160
  elsif object.is_a?(PlaywrightApi)
141
161
  ::Playwright::PlaywrightApi.unwrap(object)
142
162
  else
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Playwright
4
- VERSION = '1.21.0'
5
- COMPATIBLE_PLAYWRIGHT_VERSION = '1.21.1'
4
+ VERSION = '1.22.0'
5
+ COMPATIBLE_PLAYWRIGHT_VERSION = '1.22.1'
6
6
  end
@@ -26,8 +26,8 @@ module Playwright
26
26
  class Android < PlaywrightApi
27
27
 
28
28
  # Returns the list of detected Android devices.
29
- def devices(omitDriverInstall: nil, port: nil)
30
- wrap_impl(@impl.devices(omitDriverInstall: unwrap_impl(omitDriverInstall), port: unwrap_impl(port)))
29
+ def devices(host: nil, omitDriverInstall: nil, port: nil)
30
+ wrap_impl(@impl.devices(host: unwrap_impl(host), omitDriverInstall: unwrap_impl(omitDriverInstall), port: unwrap_impl(port)))
31
31
  end
32
32
 
33
33
  # This setting will change the default maximum time for all the methods accepting `timeout` option.
@@ -38,20 +38,20 @@ module Playwright
38
38
 
39
39
  # -- inherited from EventEmitter --
40
40
  # @nodoc
41
- def once(event, callback)
42
- event_emitter_proxy.once(event, callback)
41
+ def off(event, callback)
42
+ event_emitter_proxy.off(event, callback)
43
43
  end
44
44
 
45
45
  # -- inherited from EventEmitter --
46
46
  # @nodoc
47
- def on(event, callback)
48
- event_emitter_proxy.on(event, callback)
47
+ def once(event, callback)
48
+ event_emitter_proxy.once(event, callback)
49
49
  end
50
50
 
51
51
  # -- inherited from EventEmitter --
52
52
  # @nodoc
53
- def off(event, callback)
54
- event_emitter_proxy.off(event, callback)
53
+ def on(event, callback)
54
+ event_emitter_proxy.on(event, callback)
55
55
  end
56
56
 
57
57
  private def event_emitter_proxy
@@ -171,20 +171,20 @@ module Playwright
171
171
 
172
172
  # -- inherited from EventEmitter --
173
173
  # @nodoc
174
- def once(event, callback)
175
- event_emitter_proxy.once(event, callback)
174
+ def off(event, callback)
175
+ event_emitter_proxy.off(event, callback)
176
176
  end
177
177
 
178
178
  # -- inherited from EventEmitter --
179
179
  # @nodoc
180
- def on(event, callback)
181
- event_emitter_proxy.on(event, callback)
180
+ def once(event, callback)
181
+ event_emitter_proxy.once(event, callback)
182
182
  end
183
183
 
184
184
  # -- inherited from EventEmitter --
185
185
  # @nodoc
186
- def off(event, callback)
187
- event_emitter_proxy.off(event, callback)
186
+ def on(event, callback)
187
+ event_emitter_proxy.on(event, callback)
188
188
  end
189
189
 
190
190
  private def event_emitter_proxy
@@ -186,20 +186,20 @@ module Playwright
186
186
 
187
187
  # -- inherited from EventEmitter --
188
188
  # @nodoc
189
- def once(event, callback)
190
- event_emitter_proxy.once(event, callback)
189
+ def off(event, callback)
190
+ event_emitter_proxy.off(event, callback)
191
191
  end
192
192
 
193
193
  # -- inherited from EventEmitter --
194
194
  # @nodoc
195
- def on(event, callback)
196
- event_emitter_proxy.on(event, callback)
195
+ def once(event, callback)
196
+ event_emitter_proxy.once(event, callback)
197
197
  end
198
198
 
199
199
  # -- inherited from EventEmitter --
200
200
  # @nodoc
201
- def off(event, callback)
202
- event_emitter_proxy.off(event, callback)
201
+ def on(event, callback)
202
+ event_emitter_proxy.on(event, callback)
203
203
  end
204
204
 
205
205
  private def event_emitter_proxy
@@ -168,20 +168,20 @@ module Playwright
168
168
 
169
169
  # -- inherited from EventEmitter --
170
170
  # @nodoc
171
- def once(event, callback)
172
- event_emitter_proxy.once(event, callback)
171
+ def off(event, callback)
172
+ event_emitter_proxy.off(event, callback)
173
173
  end
174
174
 
175
175
  # -- inherited from EventEmitter --
176
176
  # @nodoc
177
- def on(event, callback)
178
- event_emitter_proxy.on(event, callback)
177
+ def once(event, callback)
178
+ event_emitter_proxy.once(event, callback)
179
179
  end
180
180
 
181
181
  # -- inherited from EventEmitter --
182
182
  # @nodoc
183
- def off(event, callback)
184
- event_emitter_proxy.off(event, callback)
183
+ def on(event, callback)
184
+ event_emitter_proxy.on(event, callback)
185
185
  end
186
186
 
187
187
  private def event_emitter_proxy
@@ -372,13 +372,13 @@ module Playwright
372
372
  end
373
373
 
374
374
  # @nodoc
375
- def pause
376
- wrap_impl(@impl.pause)
375
+ def options=(req)
376
+ wrap_impl(@impl.options=(unwrap_impl(req)))
377
377
  end
378
378
 
379
379
  # @nodoc
380
- def options=(req)
381
- wrap_impl(@impl.options=(unwrap_impl(req)))
380
+ def pause
381
+ wrap_impl(@impl.pause)
382
382
  end
383
383
 
384
384
  # @nodoc
@@ -398,20 +398,20 @@ module Playwright
398
398
 
399
399
  # -- inherited from EventEmitter --
400
400
  # @nodoc
401
- def once(event, callback)
402
- event_emitter_proxy.once(event, callback)
401
+ def off(event, callback)
402
+ event_emitter_proxy.off(event, callback)
403
403
  end
404
404
 
405
405
  # -- inherited from EventEmitter --
406
406
  # @nodoc
407
- def on(event, callback)
408
- event_emitter_proxy.on(event, callback)
407
+ def once(event, callback)
408
+ event_emitter_proxy.once(event, callback)
409
409
  end
410
410
 
411
411
  # -- inherited from EventEmitter --
412
412
  # @nodoc
413
- def off(event, callback)
414
- event_emitter_proxy.off(event, callback)
413
+ def on(event, callback)
414
+ event_emitter_proxy.on(event, callback)
415
415
  end
416
416
 
417
417
  private def event_emitter_proxy
@@ -148,20 +148,20 @@ module Playwright
148
148
 
149
149
  # -- inherited from EventEmitter --
150
150
  # @nodoc
151
- def once(event, callback)
152
- event_emitter_proxy.once(event, callback)
151
+ def off(event, callback)
152
+ event_emitter_proxy.off(event, callback)
153
153
  end
154
154
 
155
155
  # -- inherited from EventEmitter --
156
156
  # @nodoc
157
- def on(event, callback)
158
- event_emitter_proxy.on(event, callback)
157
+ def once(event, callback)
158
+ event_emitter_proxy.once(event, callback)
159
159
  end
160
160
 
161
161
  # -- inherited from EventEmitter --
162
162
  # @nodoc
163
- def off(event, callback)
164
- event_emitter_proxy.off(event, callback)
163
+ def on(event, callback)
164
+ event_emitter_proxy.on(event, callback)
165
165
  end
166
166
 
167
167
  private def event_emitter_proxy