playwright-ruby-client 1.22.0 → 1.23.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (46) hide show
  1. checksums.yaml +4 -4
  2. data/documentation/docs/api/browser.md +16 -0
  3. data/documentation/docs/api/browser_context.md +15 -2
  4. data/documentation/docs/api/browser_type.md +4 -0
  5. data/documentation/docs/api/element_handle.md +0 -5
  6. data/documentation/docs/api/experimental/android_device.md +4 -0
  7. data/documentation/docs/api/locator.md +13 -6
  8. data/documentation/docs/api/page.md +14 -1
  9. data/documentation/docs/api/request.md +3 -1
  10. data/documentation/docs/api/response.md +12 -1
  11. data/documentation/docs/api/route.md +65 -0
  12. data/documentation/docs/include/api_coverage.md +5 -3
  13. data/lib/playwright/channel.rb +1 -3
  14. data/lib/playwright/channel_owners/browser.rb +13 -0
  15. data/lib/playwright/channel_owners/browser_context.rb +81 -13
  16. data/lib/playwright/channel_owners/browser_type.rb +4 -0
  17. data/lib/playwright/channel_owners/frame.rb +16 -2
  18. data/lib/playwright/channel_owners/local_utils.rb +29 -0
  19. data/lib/playwright/channel_owners/page.rb +43 -15
  20. data/lib/playwright/channel_owners/request.rb +31 -6
  21. data/lib/playwright/channel_owners/response.rb +6 -0
  22. data/lib/playwright/channel_owners/route.rb +104 -45
  23. data/lib/playwright/connection.rb +6 -1
  24. data/lib/playwright/har_router.rb +82 -0
  25. data/lib/playwright/http_headers.rb +1 -1
  26. data/lib/playwright/javascript/regex.rb +23 -0
  27. data/lib/playwright/javascript/value_serializer.rb +3 -4
  28. data/lib/playwright/javascript.rb +1 -0
  29. data/lib/playwright/locator_impl.rb +3 -5
  30. data/lib/playwright/route_handler.rb +2 -6
  31. data/lib/playwright/utils.rb +31 -6
  32. data/lib/playwright/version.rb +2 -2
  33. data/lib/playwright.rb +2 -0
  34. data/lib/playwright_api/android_device.rb +5 -1
  35. data/lib/playwright_api/browser.rb +15 -2
  36. data/lib/playwright_api/browser_context.rb +16 -6
  37. data/lib/playwright_api/browser_type.rb +5 -1
  38. data/lib/playwright_api/element_handle.rb +0 -11
  39. data/lib/playwright_api/locator.rb +11 -12
  40. data/lib/playwright_api/page.rb +16 -6
  41. data/lib/playwright_api/request.rb +8 -1
  42. data/lib/playwright_api/response.rb +14 -1
  43. data/lib/playwright_api/route.rb +61 -2
  44. data/lib/playwright_api/worker.rb +4 -4
  45. metadata +5 -4
  46. data/lib/playwright_api/local_utils.rb +0 -9
@@ -18,6 +18,11 @@ module Playwright
18
18
  # ```
19
19
  class Browser < PlaywrightApi
20
20
 
21
+ # Get the browser type (chromium, firefox or webkit) that the browser belongs to.
22
+ def browser_type
23
+ wrap_impl(@impl.browser_type)
24
+ end
25
+
21
26
  # In case this browser is obtained using [`method: BrowserType.launch`], closes the browser and all of its pages (if any
22
27
  # were opened).
23
28
  #
@@ -82,19 +87,23 @@ module Playwright
82
87
  offline: nil,
83
88
  permissions: nil,
84
89
  proxy: nil,
90
+ record_har_content: nil,
91
+ record_har_mode: nil,
85
92
  record_har_omit_content: nil,
86
93
  record_har_path: nil,
94
+ record_har_url_filter: nil,
87
95
  record_video_dir: nil,
88
96
  record_video_size: nil,
89
97
  reducedMotion: nil,
90
98
  screen: nil,
99
+ serviceWorkers: nil,
91
100
  storageState: nil,
92
101
  strictSelectors: nil,
93
102
  timezoneId: nil,
94
103
  userAgent: nil,
95
104
  viewport: nil,
96
105
  &block)
97
- wrap_impl(@impl.new_context(acceptDownloads: unwrap_impl(acceptDownloads), baseURL: unwrap_impl(baseURL), bypassCSP: unwrap_impl(bypassCSP), colorScheme: unwrap_impl(colorScheme), deviceScaleFactor: unwrap_impl(deviceScaleFactor), extraHTTPHeaders: unwrap_impl(extraHTTPHeaders), forcedColors: unwrap_impl(forcedColors), 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), reducedMotion: unwrap_impl(reducedMotion), screen: unwrap_impl(screen), storageState: unwrap_impl(storageState), strictSelectors: unwrap_impl(strictSelectors), timezoneId: unwrap_impl(timezoneId), userAgent: unwrap_impl(userAgent), viewport: unwrap_impl(viewport), &wrap_block_call(block)))
106
+ wrap_impl(@impl.new_context(acceptDownloads: unwrap_impl(acceptDownloads), baseURL: unwrap_impl(baseURL), bypassCSP: unwrap_impl(bypassCSP), colorScheme: unwrap_impl(colorScheme), deviceScaleFactor: unwrap_impl(deviceScaleFactor), extraHTTPHeaders: unwrap_impl(extraHTTPHeaders), forcedColors: unwrap_impl(forcedColors), 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_content: unwrap_impl(record_har_content), record_har_mode: unwrap_impl(record_har_mode), record_har_omit_content: unwrap_impl(record_har_omit_content), record_har_path: unwrap_impl(record_har_path), record_har_url_filter: unwrap_impl(record_har_url_filter), record_video_dir: unwrap_impl(record_video_dir), record_video_size: unwrap_impl(record_video_size), reducedMotion: unwrap_impl(reducedMotion), screen: unwrap_impl(screen), serviceWorkers: unwrap_impl(serviceWorkers), storageState: unwrap_impl(storageState), strictSelectors: unwrap_impl(strictSelectors), timezoneId: unwrap_impl(timezoneId), userAgent: unwrap_impl(userAgent), viewport: unwrap_impl(viewport), &wrap_block_call(block)))
98
107
  end
99
108
 
100
109
  # Creates a new page in a new browser context. Closing this page will close the context as well.
@@ -121,19 +130,23 @@ module Playwright
121
130
  offline: nil,
122
131
  permissions: nil,
123
132
  proxy: nil,
133
+ record_har_content: nil,
134
+ record_har_mode: nil,
124
135
  record_har_omit_content: nil,
125
136
  record_har_path: nil,
137
+ record_har_url_filter: nil,
126
138
  record_video_dir: nil,
127
139
  record_video_size: nil,
128
140
  reducedMotion: nil,
129
141
  screen: nil,
142
+ serviceWorkers: nil,
130
143
  storageState: nil,
131
144
  strictSelectors: nil,
132
145
  timezoneId: nil,
133
146
  userAgent: nil,
134
147
  viewport: nil,
135
148
  &block)
136
- wrap_impl(@impl.new_page(acceptDownloads: unwrap_impl(acceptDownloads), baseURL: unwrap_impl(baseURL), bypassCSP: unwrap_impl(bypassCSP), colorScheme: unwrap_impl(colorScheme), deviceScaleFactor: unwrap_impl(deviceScaleFactor), extraHTTPHeaders: unwrap_impl(extraHTTPHeaders), forcedColors: unwrap_impl(forcedColors), 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), reducedMotion: unwrap_impl(reducedMotion), screen: unwrap_impl(screen), storageState: unwrap_impl(storageState), strictSelectors: unwrap_impl(strictSelectors), timezoneId: unwrap_impl(timezoneId), userAgent: unwrap_impl(userAgent), viewport: unwrap_impl(viewport), &wrap_block_call(block)))
149
+ wrap_impl(@impl.new_page(acceptDownloads: unwrap_impl(acceptDownloads), baseURL: unwrap_impl(baseURL), bypassCSP: unwrap_impl(bypassCSP), colorScheme: unwrap_impl(colorScheme), deviceScaleFactor: unwrap_impl(deviceScaleFactor), extraHTTPHeaders: unwrap_impl(extraHTTPHeaders), forcedColors: unwrap_impl(forcedColors), 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_content: unwrap_impl(record_har_content), record_har_mode: unwrap_impl(record_har_mode), record_har_omit_content: unwrap_impl(record_har_omit_content), record_har_path: unwrap_impl(record_har_path), record_har_url_filter: unwrap_impl(record_har_url_filter), record_video_dir: unwrap_impl(record_video_dir), record_video_size: unwrap_impl(record_video_size), reducedMotion: unwrap_impl(reducedMotion), screen: unwrap_impl(screen), serviceWorkers: unwrap_impl(serviceWorkers), storageState: unwrap_impl(storageState), strictSelectors: unwrap_impl(strictSelectors), timezoneId: unwrap_impl(timezoneId), userAgent: unwrap_impl(userAgent), viewport: unwrap_impl(viewport), &wrap_block_call(block)))
137
150
  end
138
151
 
139
152
  # > NOTE: This API controls [Chromium Tracing](https://www.chromium.org/developers/how-tos/trace-event-profiling-tool)
@@ -225,9 +225,9 @@ module Playwright
225
225
  # Routing provides the capability to modify network requests that are made by any page in the browser context. Once route
226
226
  # is enabled, every request matching the url pattern will stall unless it's continued, fulfilled or aborted.
227
227
  #
228
- # > NOTE: [`method: Page.route`] will not intercept requests intercepted by Service Worker. See
228
+ # > NOTE: [`method: BrowserContext.route`] will not intercept requests intercepted by Service Worker. See
229
229
  # [this](https://github.com/microsoft/playwright/issues/1090) issue. We recommend disabling Service Workers when using
230
- # request interception. Via `await context.addInitScript(() => delete window.navigator.serviceWorker);`
230
+ # request interception by setting `Browser.newContext.serviceWorkers` to `'block'`.
231
231
  #
232
232
  # An example of a naive handler that aborts all image requests:
233
233
  #
@@ -273,6 +273,16 @@ module Playwright
273
273
  wrap_impl(@impl.route(unwrap_impl(url), unwrap_impl(handler), times: unwrap_impl(times)))
274
274
  end
275
275
 
276
+ # If specified the network requests that are made in the context will be served from the HAR file. Read more about
277
+ # [Replaying from HAR](../network.md#replaying-from-har).
278
+ #
279
+ # Playwright will not serve requests intercepted by Service Worker from the HAR file. See
280
+ # [this](https://github.com/microsoft/playwright/issues/1090) issue. We recommend disabling Service Workers when using
281
+ # request interception by setting `Browser.newContext.serviceWorkers` to `'block'`.
282
+ def route_from_har(har, notFound: nil, update: nil, url: nil)
283
+ wrap_impl(@impl.route_from_har(unwrap_impl(har), notFound: unwrap_impl(notFound), update: unwrap_impl(update), url: unwrap_impl(url)))
284
+ end
285
+
276
286
  # > NOTE: Service workers are only supported on Chromium-based browsers.
277
287
  #
278
288
  # All existing service workers in the context.
@@ -372,13 +382,13 @@ module Playwright
372
382
  end
373
383
 
374
384
  # @nodoc
375
- def options=(req)
376
- wrap_impl(@impl.options=(unwrap_impl(req)))
385
+ def pause
386
+ wrap_impl(@impl.pause)
377
387
  end
378
388
 
379
389
  # @nodoc
380
- def pause
381
- wrap_impl(@impl.pause)
390
+ def options=(req)
391
+ wrap_impl(@impl.options=(unwrap_impl(req)))
382
392
  end
383
393
 
384
394
  # @nodoc
@@ -124,12 +124,16 @@ module Playwright
124
124
  offline: nil,
125
125
  permissions: nil,
126
126
  proxy: nil,
127
+ record_har_content: nil,
128
+ record_har_mode: nil,
127
129
  record_har_omit_content: nil,
128
130
  record_har_path: nil,
131
+ record_har_url_filter: nil,
129
132
  record_video_dir: nil,
130
133
  record_video_size: nil,
131
134
  reducedMotion: nil,
132
135
  screen: nil,
136
+ serviceWorkers: nil,
133
137
  slowMo: nil,
134
138
  strictSelectors: nil,
135
139
  timeout: nil,
@@ -138,7 +142,7 @@ module Playwright
138
142
  userAgent: nil,
139
143
  viewport: nil,
140
144
  &block)
141
- wrap_impl(@impl.launch_persistent_context(unwrap_impl(userDataDir), acceptDownloads: unwrap_impl(acceptDownloads), args: unwrap_impl(args), baseURL: unwrap_impl(baseURL), bypassCSP: unwrap_impl(bypassCSP), channel: unwrap_impl(channel), chromiumSandbox: unwrap_impl(chromiumSandbox), colorScheme: unwrap_impl(colorScheme), deviceScaleFactor: unwrap_impl(deviceScaleFactor), devtools: unwrap_impl(devtools), downloadsPath: unwrap_impl(downloadsPath), env: unwrap_impl(env), executablePath: unwrap_impl(executablePath), extraHTTPHeaders: unwrap_impl(extraHTTPHeaders), forcedColors: unwrap_impl(forcedColors), geolocation: unwrap_impl(geolocation), handleSIGHUP: unwrap_impl(handleSIGHUP), handleSIGINT: unwrap_impl(handleSIGINT), handleSIGTERM: unwrap_impl(handleSIGTERM), hasTouch: unwrap_impl(hasTouch), headless: unwrap_impl(headless), httpCredentials: unwrap_impl(httpCredentials), ignoreDefaultArgs: unwrap_impl(ignoreDefaultArgs), 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), reducedMotion: unwrap_impl(reducedMotion), screen: unwrap_impl(screen), slowMo: unwrap_impl(slowMo), strictSelectors: unwrap_impl(strictSelectors), timeout: unwrap_impl(timeout), timezoneId: unwrap_impl(timezoneId), tracesDir: unwrap_impl(tracesDir), userAgent: unwrap_impl(userAgent), viewport: unwrap_impl(viewport), &wrap_block_call(block)))
145
+ wrap_impl(@impl.launch_persistent_context(unwrap_impl(userDataDir), acceptDownloads: unwrap_impl(acceptDownloads), args: unwrap_impl(args), baseURL: unwrap_impl(baseURL), bypassCSP: unwrap_impl(bypassCSP), channel: unwrap_impl(channel), chromiumSandbox: unwrap_impl(chromiumSandbox), colorScheme: unwrap_impl(colorScheme), deviceScaleFactor: unwrap_impl(deviceScaleFactor), devtools: unwrap_impl(devtools), downloadsPath: unwrap_impl(downloadsPath), env: unwrap_impl(env), executablePath: unwrap_impl(executablePath), extraHTTPHeaders: unwrap_impl(extraHTTPHeaders), forcedColors: unwrap_impl(forcedColors), geolocation: unwrap_impl(geolocation), handleSIGHUP: unwrap_impl(handleSIGHUP), handleSIGINT: unwrap_impl(handleSIGINT), handleSIGTERM: unwrap_impl(handleSIGTERM), hasTouch: unwrap_impl(hasTouch), headless: unwrap_impl(headless), httpCredentials: unwrap_impl(httpCredentials), ignoreDefaultArgs: unwrap_impl(ignoreDefaultArgs), 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_content: unwrap_impl(record_har_content), record_har_mode: unwrap_impl(record_har_mode), record_har_omit_content: unwrap_impl(record_har_omit_content), record_har_path: unwrap_impl(record_har_path), record_har_url_filter: unwrap_impl(record_har_url_filter), record_video_dir: unwrap_impl(record_video_dir), record_video_size: unwrap_impl(record_video_size), reducedMotion: unwrap_impl(reducedMotion), screen: unwrap_impl(screen), serviceWorkers: unwrap_impl(serviceWorkers), slowMo: unwrap_impl(slowMo), strictSelectors: unwrap_impl(strictSelectors), timeout: unwrap_impl(timeout), timezoneId: unwrap_impl(timezoneId), tracesDir: unwrap_impl(tracesDir), userAgent: unwrap_impl(userAgent), viewport: unwrap_impl(viewport), &wrap_block_call(block)))
142
146
  end
143
147
 
144
148
  # Returns browser name. For example: `'chromium'`, `'webkit'` or `'firefox'`.
@@ -394,17 +394,6 @@ module Playwright
394
394
  # # multiple selection
395
395
  # handle.select_option(value=["red", "green", "blue"])
396
396
  # ```
397
- #
398
- # ```python sync
399
- # # single selection matching the value
400
- # handle.select_option("blue")
401
- # # single selection matching both the value and the label
402
- # handle.select_option(label="blue")
403
- # # multiple selection
404
- # handle.select_option("red", "green", "blue")
405
- # # multiple selection for blue, red and second option
406
- # handle.select_option(value="blue", { index: 2 }, "red")
407
- # ```
408
397
  def select_option(
409
398
  element: nil,
410
399
  index: nil,
@@ -224,7 +224,17 @@ module Playwright
224
224
  wrap_impl(@impl.fill(unwrap_impl(value), force: unwrap_impl(force), noWaitAfter: unwrap_impl(noWaitAfter), timeout: unwrap_impl(timeout)))
225
225
  end
226
226
 
227
- # This method narrows existing locator according to the options, for example filters by text.
227
+ # This method narrows existing locator according to the options, for example filters by text. It can be chained to filter
228
+ # multiple times.
229
+ #
230
+ # ```python sync
231
+ # row_locator = page.lsocator("tr")
232
+ # # ...
233
+ # row_locator
234
+ # .filter(has_text="text in column 1")
235
+ # .filter(has=page.locator("tr", has_text="column 2 button"))
236
+ # .screenshot()
237
+ # ```
228
238
  def filter(has: nil, hasText: nil)
229
239
  wrap_impl(@impl.filter(has: unwrap_impl(has), hasText: unwrap_impl(hasText)))
230
240
  end
@@ -418,17 +428,6 @@ module Playwright
418
428
  # # multiple selection
419
429
  # element.select_option(value=["red", "green", "blue"])
420
430
  # ```
421
- #
422
- # ```python sync
423
- # # single selection matching the value
424
- # element.select_option("blue")
425
- # # single selection matching both the value and the label
426
- # element.select_option(label="blue")
427
- # # multiple selection
428
- # element.select_option("red", "green", "blue")
429
- # # multiple selection for blue, red and second option
430
- # element.select_option(value="blue", { index: 2 }, "red")
431
- # ```
432
431
  def select_option(
433
432
  element: nil,
434
433
  index: nil,
@@ -853,7 +853,7 @@ module Playwright
853
853
  # > NOTE: The handler will only be called for the first url if the response is a redirect.
854
854
  # > NOTE: [`method: Page.route`] will not intercept requests intercepted by Service Worker. See
855
855
  # [this](https://github.com/microsoft/playwright/issues/1090) issue. We recommend disabling Service Workers when using
856
- # request interception. Via `await context.addInitScript(() => delete window.navigator.serviceWorker);`
856
+ # request interception by setting `Browser.newContext.serviceWorkers` to `'block'`.
857
857
  #
858
858
  # An example of a naive handler that aborts all image requests:
859
859
  #
@@ -895,6 +895,16 @@ module Playwright
895
895
  wrap_impl(@impl.route(unwrap_impl(url), unwrap_impl(handler), times: unwrap_impl(times)))
896
896
  end
897
897
 
898
+ # If specified the network requests that are made in the page will be served from the HAR file. Read more about
899
+ # [Replaying from HAR](../network.md#replaying-from-har).
900
+ #
901
+ # Playwright will not serve requests intercepted by Service Worker from the HAR file. See
902
+ # [this](https://github.com/microsoft/playwright/issues/1090) issue. We recommend disabling Service Workers when using
903
+ # request interception by setting `Browser.newContext.serviceWorkers` to `'block'`.
904
+ def route_from_har(har, notFound: nil, update: nil, url: nil)
905
+ wrap_impl(@impl.route_from_har(unwrap_impl(har), notFound: unwrap_impl(notFound), update: unwrap_impl(update), url: unwrap_impl(url)))
906
+ end
907
+
898
908
  # Returns the buffer with the captured screenshot.
899
909
  def screenshot(
900
910
  animations: nil,
@@ -1404,6 +1414,11 @@ module Playwright
1404
1414
  wrap_impl(@impl.start_js_coverage(resetOnNavigation: unwrap_impl(resetOnNavigation), reportAnonymousScripts: unwrap_impl(reportAnonymousScripts)))
1405
1415
  end
1406
1416
 
1417
+ # @nodoc
1418
+ def guid
1419
+ wrap_impl(@impl.guid)
1420
+ end
1421
+
1407
1422
  # @nodoc
1408
1423
  def stop_js_coverage
1409
1424
  wrap_impl(@impl.stop_js_coverage)
@@ -1419,11 +1434,6 @@ module Playwright
1419
1434
  wrap_impl(@impl.stop_css_coverage)
1420
1435
  end
1421
1436
 
1422
- # @nodoc
1423
- def guid
1424
- wrap_impl(@impl.guid)
1425
- end
1426
-
1427
1437
  # -- inherited from EventEmitter --
1428
1438
  # @nodoc
1429
1439
  def off(event, callback)
@@ -35,7 +35,9 @@ module Playwright
35
35
  wrap_impl(@impl.frame)
36
36
  end
37
37
 
38
- # **DEPRECATED** Incomplete list of headers as seen by the rendering engine. Use [`method: Request.allHeaders`] instead.
38
+ # An object with the request HTTP headers. The header names are lower-cased. Note that this method does not return
39
+ # security-related headers, including cookie-related ones. You can use [`method: Request.allHeaders`] for complete list of
40
+ # headers that include `cookie` information.
39
41
  def headers
40
42
  wrap_impl(@impl.headers)
41
43
  end
@@ -149,6 +151,11 @@ module Playwright
149
151
  wrap_impl(@impl.url)
150
152
  end
151
153
 
154
+ # @nodoc
155
+ def apply_fallback_overrides(overrides)
156
+ wrap_impl(@impl.apply_fallback_overrides(unwrap_impl(overrides)))
157
+ end
158
+
152
159
  # @nodoc
153
160
  def header_values(name)
154
161
  wrap_impl(@impl.header_values(unwrap_impl(name)))
@@ -22,7 +22,15 @@ module Playwright
22
22
  wrap_impl(@impl.frame)
23
23
  end
24
24
 
25
- # **DEPRECATED** Incomplete list of headers as seen by the rendering engine. Use [`method: Response.allHeaders`] instead.
25
+ # Indicates whether this Response was fullfilled by a Service Worker's Fetch Handler (i.e. via
26
+ # [FetchEvent.respondWith](https://developer.mozilla.org/en-US/docs/Web/API/FetchEvent/respondWith)).
27
+ def from_service_worker
28
+ wrap_impl(@impl.from_service_worker)
29
+ end
30
+
31
+ # An object with the response HTTP headers. The header names are lower-cased. Note that this method does not return
32
+ # security-related headers, including cookie-related ones. You can use [`method: Response.allHeaders`] for complete list
33
+ # of headers that include `cookie` information.
26
34
  def headers
27
35
  wrap_impl(@impl.headers)
28
36
  end
@@ -92,6 +100,11 @@ module Playwright
92
100
  wrap_impl(@impl.url)
93
101
  end
94
102
 
103
+ # @nodoc
104
+ def from_service_worker?
105
+ wrap_impl(@impl.from_service_worker?)
106
+ end
107
+
95
108
  # @nodoc
96
109
  def ok?
97
110
  wrap_impl(@impl.ok?)
@@ -17,8 +17,8 @@ module Playwright
17
17
  # # override headers
18
18
  # headers = {
19
19
  # **request.headers,
20
- # "foo": "bar" # set "foo" header
21
- # "origin": None # remove "origin" header
20
+ # "foo": "foo-value" # set "foo" header
21
+ # "bar": None # remove "bar" header
22
22
  # }
23
23
  # route.continue_(headers=headers)
24
24
  # }
@@ -28,6 +28,60 @@ module Playwright
28
28
  wrap_impl(@impl.continue(headers: unwrap_impl(headers), method: unwrap_impl(method), postData: unwrap_impl(postData), url: unwrap_impl(url)))
29
29
  end
30
30
 
31
+ # When several routes match the given pattern, they run in the order opposite to their registration. That way the last
32
+ # registered route can always override all the previos ones. In the example below, request will be handled by the
33
+ # bottom-most handler first, then it'll fall back to the previous one and in the end will be aborted by the first
34
+ # registered route.
35
+ #
36
+ # ```python sync
37
+ # page.route("**/*", lambda route: route.abort()) # Runs last.
38
+ # page.route("**/*", lambda route: route.fallback()) # Runs second.
39
+ # page.route("**/*", lambda route: route.fallback()) # Runs first.
40
+ # ```
41
+ #
42
+ # Registering multiple routes is useful when you want separate handlers to handle different kinds of requests, for example
43
+ # API calls vs page resources or GET requests vs POST requests as in the example below.
44
+ #
45
+ # ```python sync
46
+ # # Handle GET requests.
47
+ # def handle_post(route):
48
+ # if route.request.method != "GET":
49
+ # route.fallback()
50
+ # return
51
+ # # Handling GET only.
52
+ # # ...
53
+ #
54
+ # # Handle POST requests.
55
+ # def handle_post(route):
56
+ # if route.request.method != "POST":
57
+ # route.fallback()
58
+ # return
59
+ # # Handling POST only.
60
+ # # ...
61
+ #
62
+ # page.route("**/*", handle_get)
63
+ # page.route("**/*", handle_post)
64
+ # ```
65
+ #
66
+ # One can also modify request while falling back to the subsequent handler, that way intermediate route handler can modify
67
+ # url, method, headers and postData of the request.
68
+ #
69
+ # ```python sync
70
+ # def handle(route, request):
71
+ # # override headers
72
+ # headers = {
73
+ # **request.headers,
74
+ # "foo": "foo-value" # set "foo" header
75
+ # "bar": None # remove "bar" header
76
+ # }
77
+ # route.fallback(headers=headers)
78
+ # }
79
+ # page.route("**/*", handle)
80
+ # ```
81
+ def fallback(headers: nil, method: nil, postData: nil, url: nil)
82
+ wrap_impl(@impl.fallback(headers: unwrap_impl(headers), method: unwrap_impl(method), postData: unwrap_impl(postData), url: unwrap_impl(url)))
83
+ end
84
+
31
85
  # Fulfills route's request with given response.
32
86
  #
33
87
  # An example of fulfilling all requests with 404 responses:
@@ -59,6 +113,11 @@ module Playwright
59
113
  wrap_impl(@impl.request)
60
114
  end
61
115
 
116
+ # @nodoc
117
+ def redirect_navigation_request(url)
118
+ wrap_impl(@impl.redirect_navigation_request(unwrap_impl(url)))
119
+ end
120
+
62
121
  # -- inherited from EventEmitter --
63
122
  # @nodoc
64
123
  def off(event, callback)
@@ -44,13 +44,13 @@ module Playwright
44
44
  end
45
45
 
46
46
  # @nodoc
47
- def page=(req)
48
- wrap_impl(@impl.page=(unwrap_impl(req)))
47
+ def context=(req)
48
+ wrap_impl(@impl.context=(unwrap_impl(req)))
49
49
  end
50
50
 
51
51
  # @nodoc
52
- def context=(req)
53
- wrap_impl(@impl.context=(unwrap_impl(req)))
52
+ def page=(req)
53
+ wrap_impl(@impl.page=(unwrap_impl(req)))
54
54
  end
55
55
 
56
56
  # -- inherited from EventEmitter --
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: playwright-ruby-client
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.22.0
4
+ version: 1.23.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - YusukeIwaki
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2022-05-18 00:00:00.000000000 Z
11
+ date: 2022-08-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: concurrent-ruby
@@ -316,10 +316,12 @@ files:
316
316
  - lib/playwright/events.rb
317
317
  - lib/playwright/file_chooser_impl.rb
318
318
  - lib/playwright/frame_locator_impl.rb
319
+ - lib/playwright/har_router.rb
319
320
  - lib/playwright/http_headers.rb
320
321
  - lib/playwright/input_files.rb
321
322
  - lib/playwright/javascript.rb
322
323
  - lib/playwright/javascript/expression.rb
324
+ - lib/playwright/javascript/regex.rb
323
325
  - lib/playwright/javascript/value_parser.rb
324
326
  - lib/playwright/javascript/value_serializer.rb
325
327
  - lib/playwright/javascript/visitor_info.rb
@@ -362,7 +364,6 @@ files:
362
364
  - lib/playwright_api/frame_locator.rb
363
365
  - lib/playwright_api/js_handle.rb
364
366
  - lib/playwright_api/keyboard.rb
365
- - lib/playwright_api/local_utils.rb
366
367
  - lib/playwright_api/locator.rb
367
368
  - lib/playwright_api/mouse.rb
368
369
  - lib/playwright_api/page.rb
@@ -398,5 +399,5 @@ requirements: []
398
399
  rubygems_version: 3.3.7
399
400
  signing_key:
400
401
  specification_version: 4
401
- summary: The Ruby binding of playwright driver 1.22.1
402
+ summary: The Ruby binding of playwright driver 1.23.4
402
403
  test_files: []
@@ -1,9 +0,0 @@
1
- module Playwright
2
- class LocalUtils < PlaywrightApi
3
-
4
- # @nodoc
5
- def zip(zip_file, name_value_array)
6
- wrap_impl(@impl.zip(unwrap_impl(zip_file), unwrap_impl(name_value_array)))
7
- end
8
- end
9
- end