playwright-ruby-client 0.0.7 → 0.2.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (64) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +38 -3
  3. data/docs/api_coverage.md +89 -84
  4. data/lib/playwright.rb +4 -2
  5. data/lib/playwright/android_input_impl.rb +23 -0
  6. data/lib/playwright/api_implementation.rb +18 -0
  7. data/lib/playwright/channel.rb +7 -0
  8. data/lib/playwright/channel_owner.rb +3 -5
  9. data/lib/playwright/channel_owners/android.rb +1 -1
  10. data/lib/playwright/channel_owners/android_device.rb +83 -13
  11. data/lib/playwright/channel_owners/browser.rb +1 -1
  12. data/lib/playwright/channel_owners/browser_context.rb +10 -2
  13. data/lib/playwright/channel_owners/download.rb +27 -0
  14. data/lib/playwright/channel_owners/element_handle.rb +15 -4
  15. data/lib/playwright/channel_owners/frame.rb +228 -19
  16. data/lib/playwright/channel_owners/js_handle.rb +1 -1
  17. data/lib/playwright/channel_owners/page.rb +350 -27
  18. data/lib/playwright/channel_owners/request.rb +9 -1
  19. data/lib/playwright/errors.rb +1 -1
  20. data/lib/playwright/event_emitter.rb +8 -1
  21. data/lib/playwright/event_emitter_proxy.rb +49 -0
  22. data/lib/playwright/file_chooser_impl.rb +23 -0
  23. data/lib/playwright/http_headers.rb +20 -0
  24. data/lib/playwright/input_files.rb +1 -1
  25. data/lib/playwright/javascript/expression.rb +15 -0
  26. data/lib/playwright/javascript/function.rb +15 -0
  27. data/lib/playwright/javascript/value_parser.rb +1 -1
  28. data/lib/playwright/javascript/value_serializer.rb +1 -1
  29. data/lib/playwright/{input_types/keyboard.rb → keyboard_impl.rb} +5 -1
  30. data/lib/playwright/mouse_impl.rb +7 -0
  31. data/lib/playwright/playwright_api.rb +59 -20
  32. data/lib/playwright/select_option_values.rb +14 -4
  33. data/lib/playwright/timeout_settings.rb +1 -1
  34. data/lib/playwright/touchscreen_impl.rb +7 -0
  35. data/lib/playwright/utils.rb +3 -3
  36. data/lib/playwright/version.rb +1 -1
  37. data/lib/playwright/wait_helper.rb +1 -1
  38. data/lib/playwright_api/android.rb +9 -10
  39. data/lib/playwright_api/android_device.rb +43 -14
  40. data/lib/playwright_api/android_input.rb +25 -0
  41. data/lib/playwright_api/binding_call.rb +10 -6
  42. data/lib/playwright_api/browser.rb +20 -21
  43. data/lib/playwright_api/browser_context.rb +29 -20
  44. data/lib/playwright_api/browser_type.rb +16 -56
  45. data/lib/playwright_api/chromium_browser_context.rb +10 -8
  46. data/lib/playwright_api/console_message.rb +10 -6
  47. data/lib/playwright_api/dialog.rb +5 -1
  48. data/lib/playwright_api/download.rb +28 -11
  49. data/lib/playwright_api/element_handle.rb +107 -96
  50. data/lib/playwright_api/file_chooser.rb +17 -9
  51. data/lib/playwright_api/frame.rb +136 -132
  52. data/lib/playwright_api/js_handle.rb +18 -20
  53. data/lib/playwright_api/keyboard.rb +5 -5
  54. data/lib/playwright_api/page.rb +204 -149
  55. data/lib/playwright_api/playwright.rb +32 -44
  56. data/lib/playwright_api/request.rb +7 -8
  57. data/lib/playwright_api/response.rb +10 -6
  58. data/lib/playwright_api/selectors.rb +13 -9
  59. data/lib/playwright_api/web_socket.rb +10 -1
  60. data/lib/playwright_api/worker.rb +13 -13
  61. metadata +12 -6
  62. data/lib/playwright/input_type.rb +0 -19
  63. data/lib/playwright/input_types/mouse.rb +0 -4
  64. data/lib/playwright/input_types/touchscreen.rb +0 -4
@@ -23,7 +23,7 @@ module Playwright
23
23
  return if timeout_ms <= 0
24
24
 
25
25
  Concurrent::Promises.schedule(timeout_ms / 1000.0) {
26
- reject(TimeoutError.new(message))
26
+ reject(TimeoutError.new(message: message))
27
27
  }
28
28
 
29
29
  self
@@ -3,31 +3,30 @@ module Playwright
3
3
  class Android < PlaywrightApi
4
4
 
5
5
  # @nodoc
6
- def after_initialize
7
- wrap_impl(@impl.after_initialize)
6
+ def devices
7
+ wrap_impl(@impl.devices)
8
8
  end
9
9
 
10
+ # -- inherited from EventEmitter --
10
11
  # @nodoc
11
- def devices
12
- wrap_impl(@impl.devices)
12
+ def once(event, callback)
13
+ event_emitter_proxy.once(event, callback)
13
14
  end
14
15
 
15
16
  # -- inherited from EventEmitter --
16
17
  # @nodoc
17
18
  def on(event, callback)
18
- wrap_impl(@impl.on(unwrap_impl(event), unwrap_impl(callback)))
19
+ event_emitter_proxy.on(event, callback)
19
20
  end
20
21
 
21
22
  # -- inherited from EventEmitter --
22
23
  # @nodoc
23
24
  def off(event, callback)
24
- wrap_impl(@impl.off(unwrap_impl(event), unwrap_impl(callback)))
25
+ event_emitter_proxy.off(event, callback)
25
26
  end
26
27
 
27
- # -- inherited from EventEmitter --
28
- # @nodoc
29
- def once(event, callback)
30
- wrap_impl(@impl.once(unwrap_impl(event), unwrap_impl(callback)))
28
+ private def event_emitter_proxy
29
+ @event_emitter_proxy ||= EventEmitterProxy.new(self, @impl)
31
30
  end
32
31
  end
33
32
  end
@@ -3,13 +3,23 @@ module Playwright
3
3
  class AndroidDevice < PlaywrightApi
4
4
 
5
5
  # @nodoc
6
- def serial
7
- wrap_impl(@impl.serial)
6
+ def tree
7
+ wrap_impl(@impl.tree)
8
8
  end
9
9
 
10
10
  # @nodoc
11
- def model
12
- wrap_impl(@impl.model)
11
+ def close
12
+ wrap_impl(@impl.close)
13
+ end
14
+
15
+ # @nodoc
16
+ def tap_on(selector, duration: nil, timeout: nil)
17
+ wrap_impl(@impl.tap_on(unwrap_impl(selector), duration: unwrap_impl(duration), timeout: unwrap_impl(timeout)))
18
+ end
19
+
20
+ # @nodoc
21
+ def screenshot(path: nil)
22
+ wrap_impl(@impl.screenshot(path: unwrap_impl(path)))
13
23
  end
14
24
 
15
25
  # @nodoc
@@ -18,31 +28,50 @@ module Playwright
18
28
  end
19
29
 
20
30
  # @nodoc
21
- def close
22
- wrap_impl(@impl.close)
31
+ def input
32
+ wrap_impl(@impl.input)
23
33
  end
24
34
 
25
35
  # @nodoc
26
- def launch_browser(pkg: nil, acceptDownloads: nil, bypassCSP: nil, colorScheme: nil, deviceScaleFactor: nil, extraHTTPHeaders: nil, geolocation: nil, hasTouch: nil, httpCredentials: nil, ignoreHTTPSErrors: nil, isMobile: nil, javaScriptEnabled: nil, locale: nil, logger: nil, offline: nil, permissions: nil, proxy: nil, recordHar: nil, recordVideo: nil, storageState: nil, timezoneId: nil, userAgent: nil, videoSize: nil, videosPath: nil, viewport: nil, &block)
27
- wrap_impl(@impl.launch_browser(pkg: unwrap_impl(pkg), acceptDownloads: unwrap_impl(acceptDownloads), bypassCSP: unwrap_impl(bypassCSP), colorScheme: unwrap_impl(colorScheme), deviceScaleFactor: unwrap_impl(deviceScaleFactor), extraHTTPHeaders: unwrap_impl(extraHTTPHeaders), geolocation: unwrap_impl(geolocation), hasTouch: unwrap_impl(hasTouch), httpCredentials: unwrap_impl(httpCredentials), ignoreHTTPSErrors: unwrap_impl(ignoreHTTPSErrors), isMobile: unwrap_impl(isMobile), javaScriptEnabled: unwrap_impl(javaScriptEnabled), locale: unwrap_impl(locale), logger: unwrap_impl(logger), offline: unwrap_impl(offline), permissions: unwrap_impl(permissions), proxy: unwrap_impl(proxy), recordHar: unwrap_impl(recordHar), recordVideo: unwrap_impl(recordVideo), storageState: unwrap_impl(storageState), timezoneId: unwrap_impl(timezoneId), userAgent: unwrap_impl(userAgent), videoSize: unwrap_impl(videoSize), videosPath: unwrap_impl(videosPath), viewport: unwrap_impl(viewport), &wrap_block_call(block)))
36
+ def launch_browser(pkg: nil, acceptDownloads: nil, bypassCSP: nil, colorScheme: nil, deviceScaleFactor: nil, extraHTTPHeaders: nil, geolocation: nil, hasTouch: nil, httpCredentials: nil, ignoreHTTPSErrors: nil, isMobile: nil, javaScriptEnabled: nil, locale: nil, noViewport: nil, offline: nil, permissions: nil, proxy: nil, record_har_omit_content: nil, record_har_path: nil, record_video_dir: nil, record_video_size: nil, storageState: nil, timezoneId: nil, userAgent: nil, viewport: nil, &block)
37
+ wrap_impl(@impl.launch_browser(pkg: unwrap_impl(pkg), acceptDownloads: unwrap_impl(acceptDownloads), bypassCSP: unwrap_impl(bypassCSP), colorScheme: unwrap_impl(colorScheme), deviceScaleFactor: unwrap_impl(deviceScaleFactor), extraHTTPHeaders: unwrap_impl(extraHTTPHeaders), geolocation: unwrap_impl(geolocation), hasTouch: unwrap_impl(hasTouch), httpCredentials: unwrap_impl(httpCredentials), ignoreHTTPSErrors: unwrap_impl(ignoreHTTPSErrors), isMobile: unwrap_impl(isMobile), javaScriptEnabled: unwrap_impl(javaScriptEnabled), locale: unwrap_impl(locale), noViewport: unwrap_impl(noViewport), offline: unwrap_impl(offline), permissions: unwrap_impl(permissions), proxy: unwrap_impl(proxy), record_har_omit_content: unwrap_impl(record_har_omit_content), record_har_path: unwrap_impl(record_har_path), record_video_dir: unwrap_impl(record_video_dir), record_video_size: unwrap_impl(record_video_size), storageState: unwrap_impl(storageState), timezoneId: unwrap_impl(timezoneId), userAgent: unwrap_impl(userAgent), viewport: unwrap_impl(viewport), &wrap_block_call(block)))
38
+ end
39
+
40
+ # @nodoc
41
+ def info(selector)
42
+ wrap_impl(@impl.info(unwrap_impl(selector)))
43
+ end
44
+
45
+ # @nodoc
46
+ def serial
47
+ wrap_impl(@impl.serial)
48
+ end
49
+
50
+ # @nodoc
51
+ def model
52
+ wrap_impl(@impl.model)
28
53
  end
29
54
 
30
55
  # -- inherited from EventEmitter --
31
56
  # @nodoc
32
- def on(event, callback)
33
- wrap_impl(@impl.on(unwrap_impl(event), unwrap_impl(callback)))
57
+ def once(event, callback)
58
+ event_emitter_proxy.once(event, callback)
34
59
  end
35
60
 
36
61
  # -- inherited from EventEmitter --
37
62
  # @nodoc
38
- def off(event, callback)
39
- wrap_impl(@impl.off(unwrap_impl(event), unwrap_impl(callback)))
63
+ def on(event, callback)
64
+ event_emitter_proxy.on(event, callback)
40
65
  end
41
66
 
42
67
  # -- inherited from EventEmitter --
43
68
  # @nodoc
44
- def once(event, callback)
45
- wrap_impl(@impl.once(unwrap_impl(event), unwrap_impl(callback)))
69
+ def off(event, callback)
70
+ event_emitter_proxy.off(event, callback)
71
+ end
72
+
73
+ private def event_emitter_proxy
74
+ @event_emitter_proxy ||= EventEmitterProxy.new(self, @impl)
46
75
  end
47
76
  end
48
77
  end
@@ -0,0 +1,25 @@
1
+ module Playwright
2
+ # @nodoc
3
+ class AndroidInput < PlaywrightApi
4
+
5
+ # @nodoc
6
+ def type(text)
7
+ wrap_impl(@impl.type(unwrap_impl(text)))
8
+ end
9
+
10
+ # @nodoc
11
+ def tap_point(point)
12
+ wrap_impl(@impl.tap_point(unwrap_impl(point)))
13
+ end
14
+
15
+ # @nodoc
16
+ def drag(from, to, steps)
17
+ wrap_impl(@impl.drag(unwrap_impl(from), unwrap_impl(to), unwrap_impl(steps)))
18
+ end
19
+
20
+ # @nodoc
21
+ def press(key)
22
+ wrap_impl(@impl.press(unwrap_impl(key)))
23
+ end
24
+ end
25
+ end
@@ -4,20 +4,24 @@ module Playwright
4
4
 
5
5
  # -- inherited from EventEmitter --
6
6
  # @nodoc
7
- def on(event, callback)
8
- wrap_impl(@impl.on(unwrap_impl(event), unwrap_impl(callback)))
7
+ def once(event, callback)
8
+ event_emitter_proxy.once(event, callback)
9
9
  end
10
10
 
11
11
  # -- inherited from EventEmitter --
12
12
  # @nodoc
13
- def off(event, callback)
14
- wrap_impl(@impl.off(unwrap_impl(event), unwrap_impl(callback)))
13
+ def on(event, callback)
14
+ event_emitter_proxy.on(event, callback)
15
15
  end
16
16
 
17
17
  # -- inherited from EventEmitter --
18
18
  # @nodoc
19
- def once(event, callback)
20
- wrap_impl(@impl.once(unwrap_impl(event), unwrap_impl(callback)))
19
+ def off(event, callback)
20
+ event_emitter_proxy.off(event, callback)
21
+ end
22
+
23
+ private def event_emitter_proxy
24
+ @event_emitter_proxy ||= EventEmitterProxy.new(self, @impl)
21
25
  end
22
26
  end
23
27
  end
@@ -1,7 +1,7 @@
1
1
  module Playwright
2
2
  # - extends: [EventEmitter]
3
3
  #
4
- # A Browser is created via [`method: BrowserType.launch`]. An example of using a `Browser` to create a [Page]:
4
+ # A Browser is created via [`method: BrowserType.launch`]. An example of using a `Browser` to create a `Page`:
5
5
  #
6
6
  #
7
7
  # ```js
@@ -135,20 +135,20 @@ module Playwright
135
135
  isMobile: nil,
136
136
  javaScriptEnabled: nil,
137
137
  locale: nil,
138
- logger: nil,
138
+ noViewport: nil,
139
139
  offline: nil,
140
140
  permissions: nil,
141
141
  proxy: nil,
142
- recordHar: nil,
143
- recordVideo: nil,
142
+ record_har_omit_content: nil,
143
+ record_har_path: nil,
144
+ record_video_dir: nil,
145
+ record_video_size: nil,
144
146
  storageState: nil,
145
147
  timezoneId: nil,
146
148
  userAgent: nil,
147
- videoSize: nil,
148
- videosPath: nil,
149
149
  viewport: nil,
150
150
  &block)
151
- wrap_impl(@impl.new_context(acceptDownloads: unwrap_impl(acceptDownloads), bypassCSP: unwrap_impl(bypassCSP), colorScheme: unwrap_impl(colorScheme), deviceScaleFactor: unwrap_impl(deviceScaleFactor), extraHTTPHeaders: unwrap_impl(extraHTTPHeaders), geolocation: unwrap_impl(geolocation), hasTouch: unwrap_impl(hasTouch), httpCredentials: unwrap_impl(httpCredentials), ignoreHTTPSErrors: unwrap_impl(ignoreHTTPSErrors), isMobile: unwrap_impl(isMobile), javaScriptEnabled: unwrap_impl(javaScriptEnabled), locale: unwrap_impl(locale), logger: unwrap_impl(logger), offline: unwrap_impl(offline), permissions: unwrap_impl(permissions), proxy: unwrap_impl(proxy), recordHar: unwrap_impl(recordHar), recordVideo: unwrap_impl(recordVideo), storageState: unwrap_impl(storageState), timezoneId: unwrap_impl(timezoneId), userAgent: unwrap_impl(userAgent), videoSize: unwrap_impl(videoSize), videosPath: unwrap_impl(videosPath), viewport: unwrap_impl(viewport), &wrap_block_call(block)))
151
+ wrap_impl(@impl.new_context(acceptDownloads: unwrap_impl(acceptDownloads), bypassCSP: unwrap_impl(bypassCSP), colorScheme: unwrap_impl(colorScheme), deviceScaleFactor: unwrap_impl(deviceScaleFactor), extraHTTPHeaders: unwrap_impl(extraHTTPHeaders), geolocation: unwrap_impl(geolocation), hasTouch: unwrap_impl(hasTouch), httpCredentials: unwrap_impl(httpCredentials), ignoreHTTPSErrors: unwrap_impl(ignoreHTTPSErrors), isMobile: unwrap_impl(isMobile), javaScriptEnabled: unwrap_impl(javaScriptEnabled), locale: unwrap_impl(locale), noViewport: unwrap_impl(noViewport), offline: unwrap_impl(offline), permissions: unwrap_impl(permissions), proxy: unwrap_impl(proxy), record_har_omit_content: unwrap_impl(record_har_omit_content), record_har_path: unwrap_impl(record_har_path), record_video_dir: unwrap_impl(record_video_dir), record_video_size: unwrap_impl(record_video_size), storageState: unwrap_impl(storageState), timezoneId: unwrap_impl(timezoneId), userAgent: unwrap_impl(userAgent), viewport: unwrap_impl(viewport), &wrap_block_call(block)))
152
152
  end
153
153
 
154
154
  # Creates a new page in a new browser context. Closing this page will close the context as well.
@@ -169,19 +169,19 @@ module Playwright
169
169
  isMobile: nil,
170
170
  javaScriptEnabled: nil,
171
171
  locale: nil,
172
- logger: nil,
172
+ noViewport: nil,
173
173
  offline: nil,
174
174
  permissions: nil,
175
175
  proxy: nil,
176
- recordHar: nil,
177
- recordVideo: nil,
176
+ record_har_omit_content: nil,
177
+ record_har_path: nil,
178
+ record_video_dir: nil,
179
+ record_video_size: nil,
178
180
  storageState: nil,
179
181
  timezoneId: nil,
180
182
  userAgent: nil,
181
- videoSize: nil,
182
- videosPath: nil,
183
183
  viewport: nil)
184
- wrap_impl(@impl.new_page(acceptDownloads: unwrap_impl(acceptDownloads), bypassCSP: unwrap_impl(bypassCSP), colorScheme: unwrap_impl(colorScheme), deviceScaleFactor: unwrap_impl(deviceScaleFactor), extraHTTPHeaders: unwrap_impl(extraHTTPHeaders), geolocation: unwrap_impl(geolocation), hasTouch: unwrap_impl(hasTouch), httpCredentials: unwrap_impl(httpCredentials), ignoreHTTPSErrors: unwrap_impl(ignoreHTTPSErrors), isMobile: unwrap_impl(isMobile), javaScriptEnabled: unwrap_impl(javaScriptEnabled), locale: unwrap_impl(locale), logger: unwrap_impl(logger), offline: unwrap_impl(offline), permissions: unwrap_impl(permissions), proxy: unwrap_impl(proxy), recordHar: unwrap_impl(recordHar), recordVideo: unwrap_impl(recordVideo), storageState: unwrap_impl(storageState), timezoneId: unwrap_impl(timezoneId), userAgent: unwrap_impl(userAgent), videoSize: unwrap_impl(videoSize), videosPath: unwrap_impl(videosPath), viewport: unwrap_impl(viewport)))
184
+ wrap_impl(@impl.new_page(acceptDownloads: unwrap_impl(acceptDownloads), bypassCSP: unwrap_impl(bypassCSP), colorScheme: unwrap_impl(colorScheme), deviceScaleFactor: unwrap_impl(deviceScaleFactor), extraHTTPHeaders: unwrap_impl(extraHTTPHeaders), geolocation: unwrap_impl(geolocation), hasTouch: unwrap_impl(hasTouch), httpCredentials: unwrap_impl(httpCredentials), ignoreHTTPSErrors: unwrap_impl(ignoreHTTPSErrors), isMobile: unwrap_impl(isMobile), javaScriptEnabled: unwrap_impl(javaScriptEnabled), locale: unwrap_impl(locale), noViewport: unwrap_impl(noViewport), offline: unwrap_impl(offline), permissions: unwrap_impl(permissions), proxy: unwrap_impl(proxy), record_har_omit_content: unwrap_impl(record_har_omit_content), record_har_path: unwrap_impl(record_har_path), record_video_dir: unwrap_impl(record_video_dir), record_video_size: unwrap_impl(record_video_size), storageState: unwrap_impl(storageState), timezoneId: unwrap_impl(timezoneId), userAgent: unwrap_impl(userAgent), viewport: unwrap_impl(viewport)))
185
185
  end
186
186
 
187
187
  # Returns the browser version.
@@ -189,27 +189,26 @@ module Playwright
189
189
  wrap_impl(@impl.version)
190
190
  end
191
191
 
192
+ # -- inherited from EventEmitter --
192
193
  # @nodoc
193
- def after_initialize
194
- wrap_impl(@impl.after_initialize)
194
+ def once(event, callback)
195
+ event_emitter_proxy.once(event, callback)
195
196
  end
196
197
 
197
198
  # -- inherited from EventEmitter --
198
199
  # @nodoc
199
200
  def on(event, callback)
200
- wrap_impl(@impl.on(unwrap_impl(event), unwrap_impl(callback)))
201
+ event_emitter_proxy.on(event, callback)
201
202
  end
202
203
 
203
204
  # -- inherited from EventEmitter --
204
205
  # @nodoc
205
206
  def off(event, callback)
206
- wrap_impl(@impl.off(unwrap_impl(event), unwrap_impl(callback)))
207
+ event_emitter_proxy.off(event, callback)
207
208
  end
208
209
 
209
- # -- inherited from EventEmitter --
210
- # @nodoc
211
- def once(event, callback)
212
- wrap_impl(@impl.once(unwrap_impl(event), unwrap_impl(callback)))
210
+ private def event_emitter_proxy
211
+ @event_emitter_proxy ||= EventEmitterProxy.new(self, @impl)
213
212
  end
214
213
  end
215
214
  end
@@ -96,7 +96,7 @@ module Playwright
96
96
  #
97
97
  # > NOTE: The order of evaluation of multiple scripts installed via [`method: BrowserContext.addInitScript`] and
98
98
  # [`method: Page.addInitScript`] is not defined.
99
- def add_init_script(script, arg: nil)
99
+ def add_init_script(path: nil, script: nil)
100
100
  raise NotImplementedError.new('add_init_script is not implemented yet.')
101
101
  end
102
102
 
@@ -523,12 +523,6 @@ module Playwright
523
523
  end
524
524
  alias_method :geolocation=, :set_geolocation
525
525
 
526
- # **DEPRECATED** Browsers may cache credentials after successful authentication. Create a new browser context instead.
527
- def set_http_credentials(httpCredentials)
528
- raise NotImplementedError.new('set_http_credentials is not implemented yet.')
529
- end
530
- alias_method :http_credentials=, :set_http_credentials
531
-
532
526
  def set_offline(offline)
533
527
  raise NotImplementedError.new('set_offline is not implemented yet.')
534
528
  end
@@ -567,18 +561,24 @@ module Playwright
567
561
  # page.click("button")
568
562
  # page = event_info.value
569
563
  # ```
570
- def expect_event(event, optionsOrPredicate: nil)
564
+ def expect_event(event, predicate: nil, timeout: nil)
571
565
  raise NotImplementedError.new('expect_event is not implemented yet.')
572
566
  end
573
567
 
574
- # @nodoc
575
- def owner_page=(req)
576
- wrap_impl(@impl.owner_page=(unwrap_impl(req)))
568
+ # Performs action and waits for `page` event to fire. If predicate is provided, it passes `Page` value into the
569
+ # `predicate` function and waits for `predicate(event)` to return a truthy value. Will throw an error if the page is
570
+ # closed before the worker event is fired.
571
+ def expect_page(predicate: nil, timeout: nil)
572
+ raise NotImplementedError.new('expect_page is not implemented yet.')
577
573
  end
578
574
 
579
- # @nodoc
580
- def after_initialize
581
- wrap_impl(@impl.after_initialize)
575
+ # > NOTE: In most cases, you should use [`method: BrowserContext.waitForEvent`].
576
+ #
577
+ # Waits for given `event` to fire. If predicate is provided, it passes event's value into the `predicate` function and
578
+ # waits for `predicate(event)` to return a truthy value. Will throw an error if the socket is closed before the `event` is
579
+ # fired.
580
+ def wait_for_event(event, predicate: nil, timeout: nil)
581
+ raise NotImplementedError.new('wait_for_event is not implemented yet.')
582
582
  end
583
583
 
584
584
  # @nodoc
@@ -586,6 +586,11 @@ module Playwright
586
586
  wrap_impl(@impl.browser=(unwrap_impl(req)))
587
587
  end
588
588
 
589
+ # @nodoc
590
+ def owner_page=(req)
591
+ wrap_impl(@impl.owner_page=(unwrap_impl(req)))
592
+ end
593
+
589
594
  # @nodoc
590
595
  def options=(req)
591
596
  wrap_impl(@impl.options=(unwrap_impl(req)))
@@ -593,20 +598,24 @@ module Playwright
593
598
 
594
599
  # -- inherited from EventEmitter --
595
600
  # @nodoc
596
- def on(event, callback)
597
- wrap_impl(@impl.on(unwrap_impl(event), unwrap_impl(callback)))
601
+ def once(event, callback)
602
+ event_emitter_proxy.once(event, callback)
598
603
  end
599
604
 
600
605
  # -- inherited from EventEmitter --
601
606
  # @nodoc
602
- def off(event, callback)
603
- wrap_impl(@impl.off(unwrap_impl(event), unwrap_impl(callback)))
607
+ def on(event, callback)
608
+ event_emitter_proxy.on(event, callback)
604
609
  end
605
610
 
606
611
  # -- inherited from EventEmitter --
607
612
  # @nodoc
608
- def once(event, callback)
609
- wrap_impl(@impl.once(unwrap_impl(event), unwrap_impl(callback)))
613
+ def off(event, callback)
614
+ event_emitter_proxy.off(event, callback)
615
+ end
616
+
617
+ private def event_emitter_proxy
618
+ @event_emitter_proxy ||= EventEmitterProxy.new(self, @impl)
610
619
  end
611
620
  end
612
621
  end
@@ -49,11 +49,6 @@ module Playwright
49
49
  # ```
50
50
  class BrowserType < PlaywrightApi
51
51
 
52
- # This methods attaches Playwright to an existing browser instance.
53
- def connect(params)
54
- raise NotImplementedError.new('connect is not implemented yet.')
55
- end
56
-
57
52
  # A path where Playwright expects to find a bundled browser executable.
58
53
  def executable_path
59
54
  wrap_impl(@impl.executable_path)
@@ -109,12 +104,11 @@ module Playwright
109
104
  handleSIGTERM: nil,
110
105
  headless: nil,
111
106
  ignoreDefaultArgs: nil,
112
- logger: nil,
113
107
  proxy: nil,
114
108
  slowMo: nil,
115
109
  timeout: nil,
116
110
  &block)
117
- wrap_impl(@impl.launch(args: unwrap_impl(args), chromiumSandbox: unwrap_impl(chromiumSandbox), devtools: unwrap_impl(devtools), downloadsPath: unwrap_impl(downloadsPath), env: unwrap_impl(env), executablePath: unwrap_impl(executablePath), firefoxUserPrefs: unwrap_impl(firefoxUserPrefs), handleSIGHUP: unwrap_impl(handleSIGHUP), handleSIGINT: unwrap_impl(handleSIGINT), handleSIGTERM: unwrap_impl(handleSIGTERM), headless: unwrap_impl(headless), ignoreDefaultArgs: unwrap_impl(ignoreDefaultArgs), logger: unwrap_impl(logger), proxy: unwrap_impl(proxy), slowMo: unwrap_impl(slowMo), timeout: unwrap_impl(timeout), &wrap_block_call(block)))
111
+ wrap_impl(@impl.launch(args: unwrap_impl(args), chromiumSandbox: unwrap_impl(chromiumSandbox), devtools: unwrap_impl(devtools), downloadsPath: unwrap_impl(downloadsPath), env: unwrap_impl(env), executablePath: unwrap_impl(executablePath), firefoxUserPrefs: unwrap_impl(firefoxUserPrefs), handleSIGHUP: unwrap_impl(handleSIGHUP), handleSIGINT: unwrap_impl(handleSIGINT), handleSIGTERM: unwrap_impl(handleSIGTERM), headless: unwrap_impl(headless), ignoreDefaultArgs: unwrap_impl(ignoreDefaultArgs), proxy: unwrap_impl(proxy), slowMo: unwrap_impl(slowMo), timeout: unwrap_impl(timeout), &wrap_block_call(block)))
118
112
  end
119
113
 
120
114
  # Returns the persistent browser context instance.
@@ -146,60 +140,22 @@ module Playwright
146
140
  isMobile: nil,
147
141
  javaScriptEnabled: nil,
148
142
  locale: nil,
149
- logger: nil,
143
+ noViewport: nil,
150
144
  offline: nil,
151
145
  permissions: nil,
152
146
  proxy: nil,
153
- recordHar: nil,
154
- recordVideo: nil,
147
+ record_har_omit_content: nil,
148
+ record_har_path: nil,
149
+ record_video_dir: nil,
150
+ record_video_size: nil,
155
151
  slowMo: nil,
156
152
  timeout: nil,
157
153
  timezoneId: nil,
158
154
  userAgent: nil,
159
- videoSize: nil,
160
- videosPath: nil,
161
155
  viewport: nil)
162
156
  raise NotImplementedError.new('launch_persistent_context is not implemented yet.')
163
157
  end
164
158
 
165
- # Returns the browser app instance.
166
- #
167
- # Launches browser server that client can connect to. An example of launching a browser executable and connecting to it
168
- # later:
169
- #
170
- #
171
- # ```js
172
- # const { chromium } = require('playwright'); // Or 'webkit' or 'firefox'.
173
- #
174
- # (async () => {
175
- # const browserServer = await chromium.launchServer();
176
- # const wsEndpoint = browserServer.wsEndpoint();
177
- # // Use web socket endpoint later to establish a connection.
178
- # const browser = await chromium.connect({ wsEndpoint });
179
- # // Close browser instance.
180
- # await browserServer.close();
181
- # })();
182
- # ```
183
- def launch_server(
184
- args: nil,
185
- chromiumSandbox: nil,
186
- devtools: nil,
187
- downloadsPath: nil,
188
- env: nil,
189
- executablePath: nil,
190
- firefoxUserPrefs: nil,
191
- handleSIGHUP: nil,
192
- handleSIGINT: nil,
193
- handleSIGTERM: nil,
194
- headless: nil,
195
- ignoreDefaultArgs: nil,
196
- logger: nil,
197
- port: nil,
198
- proxy: nil,
199
- timeout: nil)
200
- raise NotImplementedError.new('launch_server is not implemented yet.')
201
- end
202
-
203
159
  # Returns browser name. For example: `'chromium'`, `'webkit'` or `'firefox'`.
204
160
  def name
205
161
  wrap_impl(@impl.name)
@@ -207,20 +163,24 @@ module Playwright
207
163
 
208
164
  # -- inherited from EventEmitter --
209
165
  # @nodoc
210
- def on(event, callback)
211
- wrap_impl(@impl.on(unwrap_impl(event), unwrap_impl(callback)))
166
+ def once(event, callback)
167
+ event_emitter_proxy.once(event, callback)
212
168
  end
213
169
 
214
170
  # -- inherited from EventEmitter --
215
171
  # @nodoc
216
- def off(event, callback)
217
- wrap_impl(@impl.off(unwrap_impl(event), unwrap_impl(callback)))
172
+ def on(event, callback)
173
+ event_emitter_proxy.on(event, callback)
218
174
  end
219
175
 
220
176
  # -- inherited from EventEmitter --
221
177
  # @nodoc
222
- def once(event, callback)
223
- wrap_impl(@impl.once(unwrap_impl(event), unwrap_impl(callback)))
178
+ def off(event, callback)
179
+ event_emitter_proxy.off(event, callback)
180
+ end
181
+
182
+ private def event_emitter_proxy
183
+ @event_emitter_proxy ||= EventEmitterProxy.new(self, @impl)
224
184
  end
225
185
  end
226
186
  end