playwright-ruby-client 0.0.3 → 0.0.8

Sign up to get free protection for your applications and to get access to all the features.
Files changed (68) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +119 -12
  3. data/docs/api_coverage.md +354 -0
  4. data/lib/playwright.rb +8 -0
  5. data/lib/playwright/channel_owner.rb +16 -2
  6. data/lib/playwright/channel_owners/android.rb +10 -1
  7. data/lib/playwright/channel_owners/android_device.rb +163 -0
  8. data/lib/playwright/channel_owners/browser.rb +22 -29
  9. data/lib/playwright/channel_owners/browser_context.rb +43 -0
  10. data/lib/playwright/channel_owners/console_message.rb +21 -0
  11. data/lib/playwright/channel_owners/element_handle.rb +314 -0
  12. data/lib/playwright/channel_owners/frame.rb +466 -7
  13. data/lib/playwright/channel_owners/js_handle.rb +55 -0
  14. data/lib/playwright/channel_owners/page.rb +353 -5
  15. data/lib/playwright/channel_owners/request.rb +90 -0
  16. data/lib/playwright/channel_owners/webkit_browser.rb +1 -1
  17. data/lib/playwright/connection.rb +15 -14
  18. data/lib/playwright/errors.rb +1 -1
  19. data/lib/playwright/event_emitter.rb +13 -0
  20. data/lib/playwright/input_files.rb +42 -0
  21. data/lib/playwright/input_type.rb +19 -0
  22. data/lib/playwright/input_types/android_input.rb +19 -0
  23. data/lib/playwright/input_types/keyboard.rb +32 -0
  24. data/lib/playwright/input_types/mouse.rb +4 -0
  25. data/lib/playwright/input_types/touchscreen.rb +4 -0
  26. data/lib/playwright/javascript.rb +13 -0
  27. data/lib/playwright/javascript/expression.rb +67 -0
  28. data/lib/playwright/javascript/function.rb +67 -0
  29. data/lib/playwright/javascript/value_parser.rb +75 -0
  30. data/lib/playwright/javascript/value_serializer.rb +54 -0
  31. data/lib/playwright/playwright_api.rb +45 -25
  32. data/lib/playwright/select_option_values.rb +32 -0
  33. data/lib/playwright/timeout_settings.rb +19 -0
  34. data/lib/playwright/url_matcher.rb +19 -0
  35. data/lib/playwright/utils.rb +37 -0
  36. data/lib/playwright/version.rb +1 -1
  37. data/lib/playwright/wait_helper.rb +73 -0
  38. data/lib/playwright_api/accessibility.rb +60 -6
  39. data/lib/playwright_api/android.rb +33 -0
  40. data/lib/playwright_api/android_device.rb +78 -0
  41. data/lib/playwright_api/android_input.rb +25 -0
  42. data/lib/playwright_api/binding_call.rb +18 -0
  43. data/lib/playwright_api/browser.rb +136 -44
  44. data/lib/playwright_api/browser_context.rb +378 -51
  45. data/lib/playwright_api/browser_type.rb +137 -55
  46. data/lib/playwright_api/cdp_session.rb +32 -7
  47. data/lib/playwright_api/chromium_browser_context.rb +31 -0
  48. data/lib/playwright_api/console_message.rb +27 -7
  49. data/lib/playwright_api/dialog.rb +47 -3
  50. data/lib/playwright_api/download.rb +29 -5
  51. data/lib/playwright_api/element_handle.rb +429 -143
  52. data/lib/playwright_api/file_chooser.rb +13 -2
  53. data/lib/playwright_api/frame.rb +633 -179
  54. data/lib/playwright_api/js_handle.rb +97 -17
  55. data/lib/playwright_api/keyboard.rb +152 -24
  56. data/lib/playwright_api/mouse.rb +28 -3
  57. data/lib/playwright_api/page.rb +1183 -317
  58. data/lib/playwright_api/playwright.rb +174 -13
  59. data/lib/playwright_api/request.rb +115 -30
  60. data/lib/playwright_api/response.rb +22 -3
  61. data/lib/playwright_api/route.rb +63 -4
  62. data/lib/playwright_api/selectors.rb +29 -7
  63. data/lib/playwright_api/touchscreen.rb +2 -1
  64. data/lib/playwright_api/video.rb +11 -1
  65. data/lib/playwright_api/web_socket.rb +5 -5
  66. data/lib/playwright_api/worker.rb +29 -5
  67. data/playwright.gemspec +3 -0
  68. metadata +68 -2
@@ -1,5 +1,7 @@
1
1
  module Playwright
2
- # BrowserType provides methods to launch a specific browser instance or connect to an existing one. The following is a typical example of using Playwright to drive automation:
2
+ # BrowserType provides methods to launch a specific browser instance or connect to an existing one. The following is a
3
+ # typical example of using Playwright to drive automation:
4
+ #
3
5
  #
4
6
  # ```js
5
7
  # const { chromium } = require('playwright'); // Or 'firefox' or 'webkit'.
@@ -12,6 +14,39 @@ module Playwright
12
14
  # await browser.close();
13
15
  # })();
14
16
  # ```
17
+ #
18
+ # ```python async
19
+ # import asyncio
20
+ # from playwright.async_api import async_playwright
21
+ #
22
+ # async def run(playwright):
23
+ # chromium = playwright.chromium
24
+ # browser = await chromium.launch()
25
+ # page = await browser.new_page()
26
+ # await page.goto("https://example.com")
27
+ # # other actions...
28
+ # await browser.close()
29
+ #
30
+ # async def main():
31
+ # async with async_playwright() as playwright:
32
+ # await run(playwright)
33
+ # asyncio.run(main())
34
+ # ```
35
+ #
36
+ # ```python sync
37
+ # from playwright.sync_api import sync_playwright
38
+ #
39
+ # def run(playwright):
40
+ # chromium = playwright.chromium
41
+ # browser = chromium.launch()
42
+ # page = browser.new_page()
43
+ # page.goto("https://example.com")
44
+ # # other actions...
45
+ # browser.close()
46
+ #
47
+ # with sync_playwright() as playwright:
48
+ # run(playwright)
49
+ # ```
15
50
  class BrowserType < PlaywrightApi
16
51
 
17
52
  # This methods attaches Playwright to an existing browser instance.
@@ -21,11 +56,13 @@ module Playwright
21
56
 
22
57
  # A path where Playwright expects to find a bundled browser executable.
23
58
  def executable_path
24
- wrap_channel_owner(@channel_owner.executable_path)
59
+ wrap_impl(@impl.executable_path)
25
60
  end
26
61
 
27
62
  # Returns the browser instance.
63
+ #
28
64
  # You can use `ignoreDefaultArgs` to filter out `--mute-audio` from default arguments:
65
+ #
29
66
  #
30
67
  # ```js
31
68
  # const browser = await chromium.launch({ // Or 'firefox' or 'webkit'.
@@ -33,76 +70,103 @@ module Playwright
33
70
  # });
34
71
  # ```
35
72
  #
36
- # **Chromium-only** Playwright can also be used to control the Chrome browser, but it works best with the version of Chromium it is bundled with. There is no guarantee it will work with any other version. Use `executablePath` option with extreme caution.
37
- # If Google Chrome (rather than Chromium) is preferred, a Chrome Canary or Dev Channel build is suggested.
38
- # In `browserType.launch([options])` above, any mention of Chromium also applies to Chrome.
39
- # See `this article` for a description of the differences between Chromium and Chrome. `This article` describes some differences for Linux users.
73
+ # ```python async
74
+ # browser = await playwright.chromium.launch( # or "firefox" or "webkit".
75
+ # ignore_default_args=["--mute-audio"]
76
+ # )
77
+ # ```
78
+ #
79
+ # ```python sync
80
+ # browser = playwright.chromium.launch( # or "firefox" or "webkit".
81
+ # ignore_default_args=["--mute-audio"]
82
+ # )
83
+ # ```
84
+ #
85
+ # > **Chromium-only** Playwright can also be used to control the Chrome browser, but it works best with the version of
86
+ # Chromium it is bundled with. There is no guarantee it will work with any other version. Use `executablePath` option with
87
+ # extreme caution.
88
+ # >
89
+ # > If Google Chrome (rather than Chromium) is preferred, a
90
+ # [Chrome Canary](https://www.google.com/chrome/browser/canary.html) or
91
+ # [Dev Channel](https://www.chromium.org/getting-involved/dev-channel) build is suggested.
92
+ # >
93
+ # > In [`method: BrowserType.launch`] above, any mention of Chromium also applies to Chrome.
94
+ # >
95
+ # > See [`this article`](https://www.howtogeek.com/202825/what%E2%80%99s-the-difference-between-chromium-and-chrome/) for
96
+ # a description of the differences between Chromium and Chrome.
97
+ # [`This article`](https://chromium.googlesource.com/chromium/src/+/lkgr/docs/chromium_browser_vs_google_chrome.md)
98
+ # describes some differences for Linux users.
40
99
  def launch(
41
- headless: nil,
42
- executablePath: nil,
43
100
  args: nil,
44
- ignoreDefaultArgs: nil,
45
- proxy: nil,
46
- downloadsPath: nil,
47
101
  chromiumSandbox: nil,
102
+ devtools: nil,
103
+ downloadsPath: nil,
104
+ env: nil,
105
+ executablePath: nil,
48
106
  firefoxUserPrefs: nil,
107
+ handleSIGHUP: nil,
49
108
  handleSIGINT: nil,
50
109
  handleSIGTERM: nil,
51
- handleSIGHUP: nil,
110
+ headless: nil,
111
+ ignoreDefaultArgs: nil,
52
112
  logger: nil,
53
- timeout: nil,
54
- env: nil,
55
- devtools: nil,
113
+ proxy: nil,
56
114
  slowMo: nil,
115
+ timeout: nil,
57
116
  &block)
58
- wrap_channel_owner(@channel_owner.launch(headless: headless, executablePath: executablePath, args: args, ignoreDefaultArgs: ignoreDefaultArgs, proxy: proxy, downloadsPath: downloadsPath, chromiumSandbox: chromiumSandbox, firefoxUserPrefs: firefoxUserPrefs, handleSIGINT: handleSIGINT, handleSIGTERM: handleSIGTERM, handleSIGHUP: handleSIGHUP, logger: logger, timeout: timeout, env: env, devtools: devtools, slowMo: slowMo, &wrap_block_call(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)))
59
118
  end
60
119
 
61
120
  # Returns the persistent browser context instance.
62
- # Launches browser that uses persistent storage located at `userDataDir` and returns the only context. Closing this context will automatically close the browser.
121
+ #
122
+ # Launches browser that uses persistent storage located at `userDataDir` and returns the only context. Closing this
123
+ # context will automatically close the browser.
63
124
  def launch_persistent_context(
64
125
  userDataDir,
65
- headless: nil,
66
- executablePath: nil,
126
+ acceptDownloads: nil,
67
127
  args: nil,
68
- ignoreDefaultArgs: nil,
69
- proxy: nil,
70
- downloadsPath: nil,
128
+ bypassCSP: nil,
71
129
  chromiumSandbox: nil,
130
+ colorScheme: nil,
131
+ deviceScaleFactor: nil,
132
+ devtools: nil,
133
+ downloadsPath: nil,
134
+ env: nil,
135
+ executablePath: nil,
136
+ extraHTTPHeaders: nil,
137
+ geolocation: nil,
138
+ handleSIGHUP: nil,
72
139
  handleSIGINT: nil,
73
140
  handleSIGTERM: nil,
74
- handleSIGHUP: nil,
75
- timeout: nil,
76
- env: nil,
77
- devtools: nil,
78
- slowMo: nil,
79
- acceptDownloads: nil,
141
+ hasTouch: nil,
142
+ headless: nil,
143
+ httpCredentials: nil,
144
+ ignoreDefaultArgs: nil,
80
145
  ignoreHTTPSErrors: nil,
81
- bypassCSP: nil,
82
- viewport: nil,
83
- userAgent: nil,
84
- deviceScaleFactor: nil,
85
146
  isMobile: nil,
86
- hasTouch: nil,
87
147
  javaScriptEnabled: nil,
88
- timezoneId: nil,
89
- geolocation: nil,
90
148
  locale: nil,
91
- permissions: nil,
92
- extraHTTPHeaders: nil,
93
- offline: nil,
94
- httpCredentials: nil,
95
- colorScheme: nil,
96
149
  logger: nil,
97
- videosPath: nil,
98
- videoSize: nil,
150
+ offline: nil,
151
+ permissions: nil,
152
+ proxy: nil,
99
153
  recordHar: nil,
100
- recordVideo: nil)
154
+ recordVideo: nil,
155
+ slowMo: nil,
156
+ timeout: nil,
157
+ timezoneId: nil,
158
+ userAgent: nil,
159
+ videoSize: nil,
160
+ videosPath: nil,
161
+ viewport: nil)
101
162
  raise NotImplementedError.new('launch_persistent_context is not implemented yet.')
102
163
  end
103
164
 
104
165
  # Returns the browser app instance.
105
- # Launches browser server that client can connect to. An example of launching a browser executable and connecting to it later:
166
+ #
167
+ # Launches browser server that client can connect to. An example of launching a browser executable and connecting to it
168
+ # later:
169
+ #
106
170
  #
107
171
  # ```js
108
172
  # const { chromium } = require('playwright'); // Or 'webkit' or 'firefox'.
@@ -117,28 +181,46 @@ module Playwright
117
181
  # })();
118
182
  # ```
119
183
  def launch_server(
120
- headless: nil,
121
- port: nil,
122
- executablePath: nil,
123
184
  args: nil,
124
- ignoreDefaultArgs: nil,
125
- proxy: nil,
126
- downloadsPath: nil,
127
185
  chromiumSandbox: nil,
186
+ devtools: nil,
187
+ downloadsPath: nil,
188
+ env: nil,
189
+ executablePath: nil,
128
190
  firefoxUserPrefs: nil,
191
+ handleSIGHUP: nil,
129
192
  handleSIGINT: nil,
130
193
  handleSIGTERM: nil,
131
- handleSIGHUP: nil,
194
+ headless: nil,
195
+ ignoreDefaultArgs: nil,
132
196
  logger: nil,
133
- timeout: nil,
134
- env: nil,
135
- devtools: nil)
197
+ port: nil,
198
+ proxy: nil,
199
+ timeout: nil)
136
200
  raise NotImplementedError.new('launch_server is not implemented yet.')
137
201
  end
138
202
 
139
203
  # Returns browser name. For example: `'chromium'`, `'webkit'` or `'firefox'`.
140
204
  def name
141
- wrap_channel_owner(@channel_owner.name)
205
+ wrap_impl(@impl.name)
206
+ end
207
+
208
+ # -- inherited from EventEmitter --
209
+ # @nodoc
210
+ def on(event, callback)
211
+ wrap_impl(@impl.on(unwrap_impl(event), unwrap_impl(callback)))
212
+ end
213
+
214
+ # -- inherited from EventEmitter --
215
+ # @nodoc
216
+ def off(event, callback)
217
+ wrap_impl(@impl.off(unwrap_impl(event), unwrap_impl(callback)))
218
+ end
219
+
220
+ # -- inherited from EventEmitter --
221
+ # @nodoc
222
+ def once(event, callback)
223
+ wrap_impl(@impl.once(unwrap_impl(event), unwrap_impl(callback)))
142
224
  end
143
225
  end
144
226
  end
@@ -1,13 +1,15 @@
1
1
  module Playwright
2
- # The `CDPSession` instances are used to talk raw Chrome Devtools Protocol:
2
+ # - extends: [EventEmitter]
3
3
  #
4
- # protocol methods can be called with `session.send` method.
5
- # protocol events can be subscribed to with `session.on` method.
4
+ # The `CDPSession` instances are used to talk raw Chrome Devtools Protocol:
5
+ # - protocol methods can be called with `session.send` method.
6
+ # - protocol events can be subscribed to with `session.on` method.
6
7
  #
7
8
  # Useful links:
8
- #
9
- # Documentation on DevTools Protocol can be found here: DevTools Protocol Viewer.
10
- # Getting Started with DevTools Protocol: https://github.com/aslushnikov/getting-started-with-cdp/blob/master/README.md
9
+ # - Documentation on DevTools Protocol can be found here:
10
+ # [DevTools Protocol Viewer](https://chromedevtools.github.io/devtools-protocol/).
11
+ # - Getting Started with DevTools Protocol:
12
+ # https://github.com/aslushnikov/getting-started-with-cdp/blob/master/README.md
11
13
  #
12
14
  #
13
15
  # ```js
@@ -20,9 +22,32 @@ module Playwright
20
22
  # playbackRate: response.playbackRate / 2
21
23
  # });
22
24
  # ```
25
+ #
26
+ # ```python async
27
+ # client = await page.context().new_cdp_session(page)
28
+ # await client.send("animation.enable")
29
+ # client.on("animation.animation_created", lambda: print("animation created!"))
30
+ # response = await client.send("animation.get_playback_rate")
31
+ # print("playback rate is " + response["playback_rate"])
32
+ # await client.send("animation.set_playback_rate", {
33
+ # playback_rate: response["playback_rate"] / 2
34
+ # })
35
+ # ```
36
+ #
37
+ # ```python sync
38
+ # client = page.context().new_cdp_session(page)
39
+ # client.send("animation.enable")
40
+ # client.on("animation.animation_created", lambda: print("animation created!"))
41
+ # response = client.send("animation.get_playback_rate")
42
+ # print("playback rate is " + response["playback_rate"])
43
+ # client.send("animation.set_playback_rate", {
44
+ # playback_rate: response["playback_rate"] / 2
45
+ # })
46
+ # ```
23
47
  class CDPSession < PlaywrightApi
24
48
 
25
- # Detaches the CDPSession from the target. Once detached, the CDPSession object won't emit any events and can't be used to send messages.
49
+ # Detaches the CDPSession from the target. Once detached, the CDPSession object won't emit any events and can't be used to
50
+ # send messages.
26
51
  def detach
27
52
  raise NotImplementedError.new('detach is not implemented yet.')
28
53
  end
@@ -1,11 +1,24 @@
1
1
  require_relative './browser_context.rb'
2
2
 
3
3
  module Playwright
4
+ # - extends: `BrowserContext`
5
+ #
4
6
  # Chromium-specific features including background pages, service worker support, etc.
7
+ #
5
8
  #
6
9
  # ```js
7
10
  # const backgroundPage = await context.waitForEvent('backgroundpage');
8
11
  # ```
12
+ #
13
+ # ```python async
14
+ # # FIXME
15
+ # background_page = await context.wait_for_event("backgroundpage")
16
+ # ```
17
+ #
18
+ # ```python sync
19
+ # # FIXME
20
+ # background_page = context.wait_for_event("backgroundpage")
21
+ # ```
9
22
  class ChromiumBrowserContext < BrowserContext
10
23
 
11
24
  # All existing background pages in the context.
@@ -22,5 +35,23 @@ module Playwright
22
35
  def service_workers
23
36
  raise NotImplementedError.new('service_workers is not implemented yet.')
24
37
  end
38
+
39
+ # -- inherited from EventEmitter --
40
+ # @nodoc
41
+ def on(event, callback)
42
+ wrap_impl(@impl.on(unwrap_impl(event), unwrap_impl(callback)))
43
+ end
44
+
45
+ # -- inherited from EventEmitter --
46
+ # @nodoc
47
+ def off(event, callback)
48
+ wrap_impl(@impl.off(unwrap_impl(event), unwrap_impl(callback)))
49
+ end
50
+
51
+ # -- inherited from EventEmitter --
52
+ # @nodoc
53
+ def once(event, callback)
54
+ wrap_impl(@impl.once(unwrap_impl(event), unwrap_impl(callback)))
55
+ end
25
56
  end
26
57
  end
@@ -1,22 +1,42 @@
1
1
  module Playwright
2
- # ConsoleMessage objects are dispatched by page via the page.on('console') event.
2
+ # `ConsoleMessage` objects are dispatched by page via the [`event: Page.console`] event.
3
3
  class ConsoleMessage < PlaywrightApi
4
4
 
5
5
  def args
6
- raise NotImplementedError.new('args is not implemented yet.')
6
+ wrap_impl(@impl.args)
7
7
  end
8
8
 
9
9
  def location
10
- raise NotImplementedError.new('location is not implemented yet.')
10
+ wrap_impl(@impl.location)
11
11
  end
12
12
 
13
13
  def text
14
- raise NotImplementedError.new('text is not implemented yet.')
14
+ wrap_impl(@impl.text)
15
15
  end
16
16
 
17
- # One of the following values: `'log'`, `'debug'`, `'info'`, `'error'`, `'warning'`, `'dir'`, `'dirxml'`, `'table'`, `'trace'`, `'clear'`, `'startGroup'`, `'startGroupCollapsed'`, `'endGroup'`, `'assert'`, `'profile'`, `'profileEnd'`, `'count'`, `'timeEnd'`.
18
- def type_text
19
- raise NotImplementedError.new('type_text is not implemented yet.')
17
+ # One of the following values: `'log'`, `'debug'`, `'info'`, `'error'`, `'warning'`, `'dir'`, `'dirxml'`, `'table'`,
18
+ # `'trace'`, `'clear'`, `'startGroup'`, `'startGroupCollapsed'`, `'endGroup'`, `'assert'`, `'profile'`, `'profileEnd'`,
19
+ # `'count'`, `'timeEnd'`.
20
+ def type
21
+ wrap_impl(@impl.type)
22
+ end
23
+
24
+ # -- inherited from EventEmitter --
25
+ # @nodoc
26
+ def on(event, callback)
27
+ wrap_impl(@impl.on(unwrap_impl(event), unwrap_impl(callback)))
28
+ end
29
+
30
+ # -- inherited from EventEmitter --
31
+ # @nodoc
32
+ def off(event, callback)
33
+ wrap_impl(@impl.off(unwrap_impl(event), unwrap_impl(callback)))
34
+ end
35
+
36
+ # -- inherited from EventEmitter --
37
+ # @nodoc
38
+ def once(event, callback)
39
+ wrap_impl(@impl.once(unwrap_impl(event), unwrap_impl(callback)))
20
40
  end
21
41
  end
22
42
  end
@@ -1,6 +1,8 @@
1
1
  module Playwright
2
- # Dialog objects are dispatched by page via the page.on('dialog') event.
2
+ # `Dialog` objects are dispatched by page via the [`event: Page.dialog`] event.
3
+ #
3
4
  # An example of using `Dialog` class:
5
+ #
4
6
  #
5
7
  # ```js
6
8
  # const { chromium } = require('playwright'); // Or 'firefox' or 'webkit'.
@@ -16,6 +18,48 @@ module Playwright
16
18
  # page.evaluate(() => alert('1'));
17
19
  # })();
18
20
  # ```
21
+ #
22
+ # ```python async
23
+ # import asyncio
24
+ # from playwright.async_api import async_playwright
25
+ #
26
+ # async def handle_dialog(dialog):
27
+ # print(dialog.message)
28
+ # await dialog.dismiss()
29
+ #
30
+ # async def run(playwright):
31
+ # chromium = playwright.chromium
32
+ # browser = await chromium.launch()
33
+ # page = await browser.new_page()
34
+ # page.on("dialog", handle_dialog)
35
+ # page.evaluate("alert('1')")
36
+ # await browser.close()
37
+ #
38
+ # async def main():
39
+ # async with async_playwright() as playwright:
40
+ # await run(playwright)
41
+ # asyncio.run(main())
42
+ # ```
43
+ #
44
+ # ```python sync
45
+ # # FIXME
46
+ # from playwright.sync_api import sync_playwright
47
+ #
48
+ # def handle_dialog(dialog):
49
+ # print(dialog.message)
50
+ # dialog.dismiss()
51
+ #
52
+ # def run(playwright):
53
+ # chromium = playwright.chromium
54
+ # browser = chromium.launch()
55
+ # page = browser.new_page()
56
+ # page.on("dialog", handle_dialog)
57
+ # page.evaluate("alert('1')")
58
+ # browser.close()
59
+ #
60
+ # with sync_playwright() as playwright:
61
+ # run(playwright)
62
+ # ```
19
63
  class Dialog < PlaywrightApi
20
64
 
21
65
  # Returns when the dialog has been accepted.
@@ -39,8 +83,8 @@ module Playwright
39
83
  end
40
84
 
41
85
  # Returns dialog's type, can be one of `alert`, `beforeunload`, `confirm` or `prompt`.
42
- def type_text
43
- raise NotImplementedError.new('type_text is not implemented yet.')
86
+ def type
87
+ raise NotImplementedError.new('type is not implemented yet.')
44
88
  end
45
89
  end
46
90
  end