playwright-ruby-client 0.6.0 → 0.6.5

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 (96) hide show
  1. checksums.yaml +4 -4
  2. data/documentation/README.md +33 -0
  3. data/documentation/babel.config.js +3 -0
  4. data/documentation/docs/api/accessibility.md +7 -0
  5. data/documentation/docs/api/browser.md +188 -0
  6. data/documentation/docs/api/browser_context.md +397 -0
  7. data/documentation/docs/api/browser_type.md +158 -0
  8. data/documentation/docs/api/cdp_session.md +7 -0
  9. data/documentation/docs/api/console_message.md +41 -0
  10. data/documentation/docs/api/dialog.md +71 -0
  11. data/documentation/docs/api/element_handle.md +618 -0
  12. data/documentation/docs/api/experimental/_category_.yml +3 -0
  13. data/documentation/docs/api/experimental/android.md +26 -0
  14. data/documentation/docs/api/experimental/android_device.md +92 -0
  15. data/documentation/docs/api/experimental/android_input.md +38 -0
  16. data/documentation/docs/api/experimental/android_socket.md +7 -0
  17. data/documentation/docs/api/experimental/android_web_view.md +7 -0
  18. data/documentation/docs/api/file_chooser.md +50 -0
  19. data/documentation/docs/api/frame.md +866 -0
  20. data/documentation/docs/api/js_handle.md +113 -0
  21. data/documentation/docs/api/keyboard.md +157 -0
  22. data/documentation/docs/api/mouse.md +69 -0
  23. data/documentation/docs/api/page.md +1402 -0
  24. data/documentation/docs/api/playwright.md +63 -0
  25. data/documentation/docs/api/request.md +188 -0
  26. data/documentation/docs/api/response.md +97 -0
  27. data/documentation/docs/api/route.md +79 -0
  28. data/documentation/docs/api/selectors.md +23 -0
  29. data/documentation/docs/api/touchscreen.md +8 -0
  30. data/documentation/docs/api/tracing.md +47 -0
  31. data/documentation/docs/api/web_socket.md +7 -0
  32. data/documentation/docs/api/worker.md +24 -0
  33. data/documentation/docs/article/api_coverage.mdx +11 -0
  34. data/documentation/docs/article/getting_started.md +152 -0
  35. data/documentation/docs/article/guides/_category_.yml +3 -0
  36. data/documentation/docs/article/guides/download_playwright_driver.md +49 -0
  37. data/documentation/docs/article/guides/launch_browser.md +119 -0
  38. data/documentation/docs/article/guides/rails_integration.md +205 -0
  39. data/documentation/docs/article/guides/recording_video.md +79 -0
  40. data/{docs → documentation/docs/include}/api_coverage.md +4 -3
  41. data/documentation/docusaurus.config.js +107 -0
  42. data/documentation/package.json +39 -0
  43. data/documentation/sidebars.js +15 -0
  44. data/documentation/src/components/HomepageFeatures.js +61 -0
  45. data/documentation/src/components/HomepageFeatures.module.css +13 -0
  46. data/documentation/src/css/custom.css +44 -0
  47. data/documentation/src/pages/index.js +50 -0
  48. data/documentation/src/pages/index.module.css +41 -0
  49. data/documentation/src/pages/markdown-page.md +7 -0
  50. data/documentation/static/.nojekyll +0 -0
  51. data/documentation/static/img/playwright-logo.svg +9 -0
  52. data/documentation/static/img/undraw_dropdown_menu.svg +1 -0
  53. data/documentation/static/img/undraw_web_development.svg +1 -0
  54. data/documentation/static/img/undraw_windows.svg +1 -0
  55. data/documentation/yarn.lock +8785 -0
  56. data/lib/playwright/channel_owners/binding_call.rb +33 -0
  57. data/lib/playwright/channel_owners/browser.rb +15 -27
  58. data/lib/playwright/channel_owners/browser_context.rb +15 -7
  59. data/lib/playwright/channel_owners/browser_type.rb +23 -8
  60. data/lib/playwright/channel_owners/element_handle.rb +2 -10
  61. data/lib/playwright/channel_owners/frame.rb +6 -28
  62. data/lib/playwright/channel_owners/js_handle.rb +2 -10
  63. data/lib/playwright/channel_owners/page.rb +18 -8
  64. data/lib/playwright/channel_owners/worker.rb +4 -0
  65. data/lib/playwright/input_files.rb +0 -8
  66. data/lib/playwright/javascript.rb +0 -10
  67. data/lib/playwright/javascript/expression.rb +2 -7
  68. data/lib/playwright/playwright_api.rb +16 -1
  69. data/lib/playwright/tracing_impl.rb +9 -9
  70. data/lib/playwright/version.rb +1 -1
  71. data/lib/playwright_api/accessibility.rb +7 -89
  72. data/lib/playwright_api/android.rb +10 -66
  73. data/lib/playwright_api/android_device.rb +10 -9
  74. data/lib/playwright_api/browser.rb +21 -172
  75. data/lib/playwright_api/browser_context.rb +54 -617
  76. data/lib/playwright_api/browser_type.rb +20 -108
  77. data/lib/playwright_api/cdp_session.rb +2 -25
  78. data/lib/playwright_api/console_message.rb +6 -6
  79. data/lib/playwright_api/dialog.rb +11 -92
  80. data/lib/playwright_api/element_handle.rb +60 -362
  81. data/lib/playwright_api/file_chooser.rb +0 -28
  82. data/lib/playwright_api/frame.rb +74 -713
  83. data/lib/playwright_api/js_handle.rb +16 -90
  84. data/lib/playwright_api/keyboard.rb +21 -213
  85. data/lib/playwright_api/mouse.rb +1 -45
  86. data/lib/playwright_api/page.rb +181 -1647
  87. data/lib/playwright_api/playwright.rb +14 -117
  88. data/lib/playwright_api/request.rb +15 -121
  89. data/lib/playwright_api/response.rb +7 -7
  90. data/lib/playwright_api/route.rb +8 -105
  91. data/lib/playwright_api/selectors.rb +6 -97
  92. data/lib/playwright_api/tracing.rb +7 -73
  93. data/lib/playwright_api/web_socket.rb +1 -1
  94. data/lib/playwright_api/worker.rb +28 -42
  95. metadata +57 -4
  96. data/lib/playwright/javascript/function.rb +0 -67
@@ -1,58 +1,10 @@
1
1
  module Playwright
2
2
  # Playwright module provides a method to launch a browser instance. The following is a typical example of using Playwright
3
3
  # to drive automation:
4
- #
5
4
  #
6
- # ```js
7
- # const { chromium, firefox, webkit } = require('playwright');
8
- #
9
- # (async () => {
10
- # const browser = await chromium.launch(); // Or 'firefox' or 'webkit'.
11
- # const page = await browser.newPage();
12
- # await page.goto('http://example.com');
13
- # // other actions...
14
- # await browser.close();
15
- # })();
16
- # ```
17
- #
18
- # ```java
19
- # import com.microsoft.playwright.*;
20
- #
21
- # public class Example {
22
- # public static void main(String[] args) {
23
- # try (Playwright playwright = Playwright.create()) {
24
- # BrowserType chromium = playwright.chromium();
25
- # Browser browser = chromium.launch();
26
- # Page page = browser.newPage();
27
- # page.navigate("http://example.com");
28
- # // other actions...
29
- # browser.close();
30
- # }
31
- # }
32
- # }
33
- # ```
34
- #
35
- # ```python async
36
- # import asyncio
37
- # from playwright.async_api import async_playwright
38
- #
39
- # async def run(playwright):
40
- # chromium = playwright.chromium # or "firefox" or "webkit".
41
- # browser = await chromium.launch()
42
- # page = await browser.new_page()
43
- # await page.goto("http://example.com")
44
- # # other actions...
45
- # await browser.close()
46
- #
47
- # async def main():
48
- # async with async_playwright() as playwright:
49
- # await run(playwright)
50
- # asyncio.run(main())
51
- # ```
52
- #
53
5
  # ```python sync
54
6
  # from playwright.sync_api import sync_playwright
55
- #
7
+ #
56
8
  # def run(playwright):
57
9
  # chromium = playwright.chromium # or "firefox" or "webkit".
58
10
  # browser = chromium.launch()
@@ -60,28 +12,10 @@ module Playwright
60
12
  # page.goto("http://example.com")
61
13
  # # other actions...
62
14
  # browser.close()
63
- #
15
+ #
64
16
  # with sync_playwright() as playwright:
65
17
  # run(playwright)
66
18
  # ```
67
- #
68
- # ```csharp
69
- # using Microsoft.Playwright;
70
- # using System.Threading.Tasks;
71
- #
72
- # class PlaywrightExample
73
- # {
74
- # public static async Task Main()
75
- # {
76
- # using var playwright = await Playwright.CreateAsync();
77
- # await using var browser = await playwright.Chromium.LaunchAsync();
78
- # var page = await browser.NewPageAsync();
79
- #
80
- # await page.GotoAsync("https://www.microsoft.com");
81
- # // other actions...
82
- # }
83
- # }
84
- # ```
85
19
  class Playwright < PlaywrightApi
86
20
 
87
21
  # This object can be used to launch or connect to Chromium, returning instances of `Browser`.
@@ -90,47 +24,10 @@ module Playwright
90
24
  end
91
25
 
92
26
  # Returns a dictionary of devices to be used with [`method: Browser.newContext`] or [`method: Browser.newPage`].
93
- #
94
27
  #
95
- # ```js
96
- # const { webkit, devices } = require('playwright');
97
- # const iPhone = devices['iPhone 6'];
98
- #
99
- # (async () => {
100
- # const browser = await webkit.launch();
101
- # const context = await browser.newContext({
102
- # ...iPhone
103
- # });
104
- # const page = await context.newPage();
105
- # await page.goto('http://example.com');
106
- # // other actions...
107
- # await browser.close();
108
- # })();
109
- # ```
110
- #
111
- # ```python async
112
- # import asyncio
113
- # from playwright.async_api import async_playwright
114
- #
115
- # async def run(playwright):
116
- # webkit = playwright.webkit
117
- # iphone = playwright.devices["iPhone 6"]
118
- # browser = await webkit.launch()
119
- # context = await browser.new_context(**iphone)
120
- # page = await context.new_page()
121
- # await page.goto("http://example.com")
122
- # # other actions...
123
- # await browser.close()
124
- #
125
- # async def main():
126
- # async with async_playwright() as playwright:
127
- # await run(playwright)
128
- # asyncio.run(main())
129
- # ```
130
- #
131
28
  # ```python sync
132
29
  # from playwright.sync_api import sync_playwright
133
- #
30
+ #
134
31
  # def run(playwright):
135
32
  # webkit = playwright.webkit
136
33
  # iphone = playwright.devices["iPhone 6"]
@@ -140,7 +37,7 @@ module Playwright
140
37
  # page.goto("http://example.com")
141
38
  # # other actions...
142
39
  # browser.close()
143
- #
40
+ #
144
41
  # with sync_playwright() as playwright:
145
42
  # run(playwright)
146
43
  # ```
@@ -166,18 +63,18 @@ module Playwright
166
63
 
167
64
  # Terminates this instance of Playwright in case it was created bypassing the Python context manager. This is useful in
168
65
  # REPL applications.
169
- #
66
+ #
170
67
  # ```py
171
68
  # >>> from playwright.sync_api import sync_playwright
172
- #
69
+ #
173
70
  # >>> playwright = sync_playwright().start()
174
- #
71
+ #
175
72
  # >>> browser = playwright.chromium.launch()
176
73
  # >>> page = browser.new_page()
177
74
  # >>> page.goto("http://whatsmyuseragent.org/")
178
75
  # >>> page.screenshot(path="example.png")
179
76
  # >>> browser.close()
180
- #
77
+ #
181
78
  # >>> playwright.stop()
182
79
  # ```
183
80
  def stop
@@ -194,12 +91,6 @@ module Playwright
194
91
  wrap_impl(@impl.electron)
195
92
  end
196
93
 
197
- # -- inherited from EventEmitter --
198
- # @nodoc
199
- def off(event, callback)
200
- event_emitter_proxy.off(event, callback)
201
- end
202
-
203
94
  # -- inherited from EventEmitter --
204
95
  # @nodoc
205
96
  def once(event, callback)
@@ -212,6 +103,12 @@ module Playwright
212
103
  event_emitter_proxy.on(event, callback)
213
104
  end
214
105
 
106
+ # -- inherited from EventEmitter --
107
+ # @nodoc
108
+ def off(event, callback)
109
+ event_emitter_proxy.off(event, callback)
110
+ end
111
+
215
112
  private def event_emitter_proxy
216
113
  @event_emitter_proxy ||= EventEmitterProxy.new(self, @impl)
217
114
  end
@@ -3,44 +3,24 @@ module Playwright
3
3
  # - [`event: Page.request`] emitted when the request is issued by the page.
4
4
  # - [`event: Page.response`] emitted when/if the response status and headers are received for the request.
5
5
  # - [`event: Page.requestFinished`] emitted when the response body is downloaded and the request is complete.
6
- #
6
+ #
7
7
  # If request fails at some point, then instead of `'requestfinished'` event (and possibly instead of 'response' event),
8
8
  # the [`event: Page.requestFailed`] event is emitted.
9
- #
9
+ #
10
10
  # > NOTE: HTTP Error responses, such as 404 or 503, are still successful responses from HTTP standpoint, so request will
11
11
  # complete with `'requestfinished'` event.
12
- #
12
+ #
13
13
  # If request gets a 'redirect' response, the request is successfully finished with the 'requestfinished' event, and a new
14
14
  # request is issued to a redirected url.
15
15
  class Request < PlaywrightApi
16
16
 
17
17
  # The method returns `null` unless this request has failed, as reported by `requestfailed` event.
18
- #
18
+ #
19
19
  # Example of logging of all the failed requests:
20
- #
21
20
  #
22
- # ```js
23
- # page.on('requestfailed', request => {
24
- # console.log(request.url() + ' ' + request.failure().errorText);
25
- # });
26
- # ```
27
- #
28
- # ```java
29
- # page.onRequestFailed(request -> {
30
- # System.out.println(request.url() + " " + request.failure());
31
- # });
32
- # ```
33
- #
34
21
  # ```py
35
22
  # page.on("requestfailed", lambda request: print(request.url + " " + request.failure))
36
23
  # ```
37
- #
38
- # ```csharp
39
- # page.RequestFailed += (_, request) =>
40
- # {
41
- # Console.WriteLine(request.Failure);
42
- # };
43
- # ```
44
24
  def failure
45
25
  wrap_impl(@impl.failure)
46
26
  end
@@ -76,7 +56,7 @@ module Playwright
76
56
  end
77
57
 
78
58
  # Returns parsed request's body for `form-urlencoded` and JSON as a fallback if any.
79
- #
59
+ #
80
60
  # When the response is `application/x-www-form-urlencoded` then a key/value object of the values will be returned.
81
61
  # Otherwise it will be parsed as JSON.
82
62
  def post_data_json
@@ -84,90 +64,35 @@ module Playwright
84
64
  end
85
65
 
86
66
  # Request that was redirected by the server to this one, if any.
87
- #
67
+ #
88
68
  # When the server responds with a redirect, Playwright creates a new `Request` object. The two requests are connected by
89
69
  # `redirectedFrom()` and `redirectedTo()` methods. When multiple server redirects has happened, it is possible to
90
70
  # construct the whole redirect chain by repeatedly calling `redirectedFrom()`.
91
- #
71
+ #
92
72
  # For example, if the website `http://example.com` redirects to `https://example.com`:
93
- #
94
73
  #
95
- # ```js
96
- # const response = await page.goto('http://example.com');
97
- # console.log(response.request().redirectedFrom().url()); // 'http://example.com'
98
- # ```
99
- #
100
- # ```java
101
- # Response response = page.navigate("http://example.com");
102
- # System.out.println(response.request().redirectedFrom().url()); // "http://example.com"
103
- # ```
104
- #
105
- # ```python async
106
- # response = await page.goto("http://example.com")
107
- # print(response.request.redirected_from.url) # "http://example.com"
108
- # ```
109
- #
110
74
  # ```python sync
111
75
  # response = page.goto("http://example.com")
112
76
  # print(response.request.redirected_from.url) # "http://example.com"
113
77
  # ```
114
- #
115
- # ```csharp
116
- # var response = await page.GotoAsync("http://www.microsoft.com");
117
- # Console.WriteLine(response.Request.RedirectedFrom?.Url); // http://www.microsoft.com
118
- # ```
119
- #
78
+ #
120
79
  # If the website `https://google.com` has no redirects:
121
- #
122
80
  #
123
- # ```js
124
- # const response = await page.goto('https://google.com');
125
- # console.log(response.request().redirectedFrom()); // null
126
- # ```
127
- #
128
- # ```java
129
- # Response response = page.navigate("https://google.com");
130
- # System.out.println(response.request().redirectedFrom()); // null
131
- # ```
132
- #
133
- # ```python async
134
- # response = await page.goto("https://google.com")
135
- # print(response.request.redirected_from) # None
136
- # ```
137
- #
138
81
  # ```python sync
139
82
  # response = page.goto("https://google.com")
140
83
  # print(response.request.redirected_from) # None
141
84
  # ```
142
- #
143
- # ```csharp
144
- # var response = await page.GotoAsync("https://www.google.com");
145
- # Console.WriteLine(response.Request.RedirectedFrom?.Url); // null
146
- # ```
147
85
  def redirected_from
148
86
  wrap_impl(@impl.redirected_from)
149
87
  end
150
88
 
151
89
  # New request issued by the browser if the server responded with redirect.
152
- #
90
+ #
153
91
  # This method is the opposite of [`method: Request.redirectedFrom`]:
154
- #
155
92
  #
156
- # ```js
157
- # console.log(request.redirectedFrom().redirectedTo() === request); // true
158
- # ```
159
- #
160
- # ```java
161
- # System.out.println(request.redirectedFrom().redirectedTo() == request); // true
162
- # ```
163
- #
164
93
  # ```py
165
94
  # assert request.redirected_from.redirected_to == request
166
95
  # ```
167
- #
168
- # ```csharp
169
- # Console.WriteLine(request.RedirectedFrom?.RedirectedTo == request); // True
170
- # ```
171
96
  def redirected_to
172
97
  wrap_impl(@impl.redirected_to)
173
98
  end
@@ -187,44 +112,13 @@ module Playwright
187
112
  # Returns resource timing information for given request. Most of the timing values become available upon the response,
188
113
  # `responseEnd` becomes available when request finishes. Find more information at
189
114
  # [Resource Timing API](https://developer.mozilla.org/en-US/docs/Web/API/PerformanceResourceTiming).
190
- #
191
115
  #
192
- # ```js
193
- # const [request] = await Promise.all([
194
- # page.waitForEvent('requestfinished'),
195
- # page.goto('http://example.com')
196
- # ]);
197
- # console.log(request.timing());
198
- # ```
199
- #
200
- # ```java
201
- # page.onRequestFinished(request -> {
202
- # Timing timing = request.timing();
203
- # System.out.println(timing.responseEnd - timing.startTime);
204
- # });
205
- # page.navigate("http://example.com");
206
- # ```
207
- #
208
- # ```python async
209
- # async with page.expect_event("requestfinished") as request_info:
210
- # await page.goto("http://example.com")
211
- # request = await request_info.value
212
- # print(request.timing)
213
- # ```
214
- #
215
116
  # ```python sync
216
117
  # with page.expect_event("requestfinished") as request_info:
217
118
  # page.goto("http://example.com")
218
119
  # request = request_info.value
219
120
  # print(request.timing)
220
121
  # ```
221
- #
222
- # ```csharp
223
- # var waitForEventTask = page.WaitForEventAsync(PageEvent.RequestFinished);
224
- # await page.GotoAsync("https://www.microsoft.com");
225
- # var request = await waitForEventTask;
226
- # Console.WriteLine(request.Timing.ResponseEnd);
227
- # ```
228
122
  def timing
229
123
  wrap_impl(@impl.timing)
230
124
  end
@@ -234,12 +128,6 @@ module Playwright
234
128
  wrap_impl(@impl.url)
235
129
  end
236
130
 
237
- # -- inherited from EventEmitter --
238
- # @nodoc
239
- def off(event, callback)
240
- event_emitter_proxy.off(event, callback)
241
- end
242
-
243
131
  # -- inherited from EventEmitter --
244
132
  # @nodoc
245
133
  def once(event, callback)
@@ -252,6 +140,12 @@ module Playwright
252
140
  event_emitter_proxy.on(event, callback)
253
141
  end
254
142
 
143
+ # -- inherited from EventEmitter --
144
+ # @nodoc
145
+ def off(event, callback)
146
+ event_emitter_proxy.off(event, callback)
147
+ end
148
+
255
149
  private def event_emitter_proxy
256
150
  @event_emitter_proxy ||= EventEmitterProxy.new(self, @impl)
257
151
  end
@@ -23,7 +23,7 @@ module Playwright
23
23
  end
24
24
 
25
25
  # Returns the JSON representation of response body.
26
- #
26
+ #
27
27
  # This method will throw if the response body is not parsable via `JSON.parse`.
28
28
  def json
29
29
  wrap_impl(@impl.json)
@@ -69,12 +69,6 @@ module Playwright
69
69
  wrap_impl(@impl.ok?)
70
70
  end
71
71
 
72
- # -- inherited from EventEmitter --
73
- # @nodoc
74
- def off(event, callback)
75
- event_emitter_proxy.off(event, callback)
76
- end
77
-
78
72
  # -- inherited from EventEmitter --
79
73
  # @nodoc
80
74
  def once(event, callback)
@@ -87,6 +81,12 @@ module Playwright
87
81
  event_emitter_proxy.on(event, callback)
88
82
  end
89
83
 
84
+ # -- inherited from EventEmitter --
85
+ # @nodoc
86
+ def off(event, callback)
87
+ event_emitter_proxy.off(event, callback)
88
+ end
89
+
90
90
  private def event_emitter_proxy
91
91
  @event_emitter_proxy ||= EventEmitterProxy.new(self, @impl)
92
92
  end
@@ -9,43 +9,7 @@ module Playwright
9
9
  end
10
10
 
11
11
  # Continues route's request with optional overrides.
12
- #
13
12
  #
14
- # ```js
15
- # await page.route('**/*', (route, request) => {
16
- # // Override headers
17
- # const headers = {
18
- # ...request.headers(),
19
- # foo: 'bar', // set "foo" header
20
- # origin: undefined, // remove "origin" header
21
- # };
22
- # route.continue({headers});
23
- # });
24
- # ```
25
- #
26
- # ```java
27
- # page.route("**/*", route -> {
28
- # // Override headers
29
- # Map<String, String> headers = new HashMap<>(route.request().headers());
30
- # headers.put("foo", "bar"); // set "foo" header
31
- # headers.remove("origin"); // remove "origin" header
32
- # route.resume(new Route.ResumeOptions().setHeaders(headers));
33
- # });
34
- # ```
35
- #
36
- # ```python async
37
- # async def handle(route, request):
38
- # # override headers
39
- # headers = {
40
- # **request.headers,
41
- # "foo": "bar" # set "foo" header
42
- # "origin": None # remove "origin" header
43
- # }
44
- # await route.continue_(headers=headers)
45
- # }
46
- # await page.route("**/*", handle)
47
- # ```
48
- #
49
13
  # ```python sync
50
14
  # def handle(route, request):
51
15
  # # override headers
@@ -58,87 +22,26 @@ module Playwright
58
22
  # }
59
23
  # page.route("**/*", handle)
60
24
  # ```
61
- #
62
- # ```csharp
63
- # await page.RouteAsync("**/*", route =>
64
- # {
65
- # var headers = new Dictionary<string, string>(route.Request.Headers) { { "foo", "bar" } };
66
- # headers.Remove("origin");
67
- # route.ContinueAsync(headers);
68
- # });
69
- # ```
70
25
  def continue(headers: nil, method: nil, postData: nil, url: nil)
71
26
  wrap_impl(@impl.continue(headers: unwrap_impl(headers), method: unwrap_impl(method), postData: unwrap_impl(postData), url: unwrap_impl(url)))
72
27
  end
73
28
 
74
29
  # Fulfills route's request with given response.
75
- #
30
+ #
76
31
  # An example of fulfilling all requests with 404 responses:
77
- #
78
32
  #
79
- # ```js
80
- # await page.route('**/*', route => {
81
- # route.fulfill({
82
- # status: 404,
83
- # contentType: 'text/plain',
84
- # body: 'Not Found!'
85
- # });
86
- # });
87
- # ```
88
- #
89
- # ```java
90
- # page.route("**/*", route -> {
91
- # route.fulfill(new Route.FulfillOptions()
92
- # .setStatus(404)
93
- # .setContentType("text/plain")
94
- # .setBody("Not Found!"));
95
- # });
96
- # ```
97
- #
98
- # ```python async
99
- # await page.route("**/*", lambda route: route.fulfill(
100
- # status=404,
101
- # content_type="text/plain",
102
- # body="not found!"))
103
- # ```
104
- #
105
33
  # ```python sync
106
34
  # page.route("**/*", lambda route: route.fulfill(
107
35
  # status=404,
108
36
  # content_type="text/plain",
109
37
  # body="not found!"))
110
38
  # ```
111
- #
112
- # ```csharp
113
- # await page.RouteAsync("**/*", route => route.FulfillAsync(
114
- # status: 404,
115
- # contentType: "text/plain",
116
- # body: "Not Found!"));
117
- # ```
118
- #
39
+ #
119
40
  # An example of serving static file:
120
- #
121
41
  #
122
- # ```js
123
- # await page.route('**/xhr_endpoint', route => route.fulfill({ path: 'mock_data.json' }));
124
- # ```
125
- #
126
- # ```java
127
- # page.route("**/xhr_endpoint", route -> route.fulfill(
128
- # new Route.FulfillOptions().setPath(Paths.get("mock_data.json")));
129
- # ```
130
- #
131
- # ```python async
132
- # await page.route("**/xhr_endpoint", lambda route: route.fulfill(path="mock_data.json"))
133
- # ```
134
- #
135
42
  # ```python sync
136
43
  # page.route("**/xhr_endpoint", lambda route: route.fulfill(path="mock_data.json"))
137
44
  # ```
138
- #
139
- # ```csharp
140
- # await page.RouteAsync("**/xhr_endpoint", route => route.FulfillAsync(path: "mock_data.json"));
141
- # ```
142
45
  def fulfill(
143
46
  body: nil,
144
47
  contentType: nil,
@@ -153,12 +56,6 @@ module Playwright
153
56
  wrap_impl(@impl.request)
154
57
  end
155
58
 
156
- # -- inherited from EventEmitter --
157
- # @nodoc
158
- def off(event, callback)
159
- event_emitter_proxy.off(event, callback)
160
- end
161
-
162
59
  # -- inherited from EventEmitter --
163
60
  # @nodoc
164
61
  def once(event, callback)
@@ -171,6 +68,12 @@ module Playwright
171
68
  event_emitter_proxy.on(event, callback)
172
69
  end
173
70
 
71
+ # -- inherited from EventEmitter --
72
+ # @nodoc
73
+ def off(event, callback)
74
+ event_emitter_proxy.off(event, callback)
75
+ end
76
+
174
77
  private def event_emitter_proxy
175
78
  @event_emitter_proxy ||= EventEmitterProxy.new(self, @impl)
176
79
  end