playwright-ruby-client 1.35.0 → 1.37.0

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 3bd6b36250957e5968a5314944dc9327980d93e225a9aea86d3958268f8e089c
4
- data.tar.gz: e787bb96692cb1d47b1f56d359d3ed63559f477993f1d14250398403a08359e9
3
+ metadata.gz: 72247024abd6cfc5a96eb203f8f1bcbbca18dafacb48e83802dd464ed93f7d21
4
+ data.tar.gz: 2496de7896c09b6395f5d4c958617cfb03111f0a111ef7e50acadf8a90069e53
5
5
  SHA512:
6
- metadata.gz: 5a9e9da2b00c688fb256a770cacb32e9762ccd1df1965f30653d30c62810e6c3fae54c9838006461d02427520a071bec13000c754c4790fe85f1f9086592436c
7
- data.tar.gz: e9e74a9558c418ce736ccbc0aa61ba6cac55b484ba961255de8dc8e22bdbf67db90f3c00de470b3cd94846c9fb5b76afcf3773f2680e9f8ba5d317f2cf318474
6
+ metadata.gz: c6e622cc2a84154728e92f524982cd5c5b62e82ce74c3c48e2806b168b9c828af3e864e99d9f4f880a394cfb9a0c911f4c9db10296fe78071038ef8fa609cb84
7
+ data.tar.gz: 41d756ca2590f37fffbc81fdb0306a76c06a462e1aa33aaad81e871aacc0e9d12fc6f2fb6df514f2a013fbc2afc82d1737100bfcf34f4ca4ef10c78502f2acf7
@@ -343,7 +343,7 @@ def route_from_har(
343
343
  ```
344
344
 
345
345
 
346
- If specified the network requests that are made in the context will be served from the HAR file. Read more about [Replaying from HAR](https://playwright.dev/python/docs/network#replaying-from-har).
346
+ If specified the network requests that are made in the context will be served from the HAR file. Read more about [Replaying from HAR](https://playwright.dev/python/docs/mock#replaying-from-har).
347
347
 
348
348
  Playwright will not serve requests intercepted by Service Worker from the HAR file. See [this](https://github.com/microsoft/playwright/issues/1090) issue. We recommend disabling Service Workers when using request interception by setting `Browser.newContext.serviceWorkers` to `'block'`.
349
349
 
@@ -956,6 +956,7 @@ def set_content(html, timeout: nil, waitUntil: nil)
956
956
  alias: `content=`
957
957
 
958
958
 
959
+ This method internally calls [document.write()](https://developer.mozilla.org/en-US/docs/Web/API/Document/write), inheriting all its specific characteristics and behaviors.
959
960
 
960
961
  ## set_input_files
961
962
 
@@ -6,7 +6,7 @@ sidebar_position: 10
6
6
 
7
7
 
8
8
  Locators are the central piece of Playwright's auto-waiting and retry-ability. In a nutshell, locators represent
9
- a way to find element(s) on the page at any moment. Locator can be created with the [Page#locator](./page#locator) method.
9
+ a way to find element(s) on the page at any moment. A locator can be created with the [Page#locator](./page#locator) method.
10
10
 
11
11
  [Learn more about locators](https://playwright.dev/python/docs/locators).
12
12
 
@@ -17,8 +17,7 @@ def all
17
17
  ```
18
18
 
19
19
 
20
- When locator points to a list of elements, returns array of locators, pointing
21
- to respective elements.
20
+ When the locator points to a list of elements, this returns an array of locators, pointing to their respective elements.
22
21
 
23
22
  **NOTE**: [Locator#all](./locator#all) does not wait for elements to match the locator, and instead immediately returns whatever is present in the page.
24
23
 
@@ -1255,6 +1254,8 @@ def type(text, delay: nil, noWaitAfter: nil, timeout: nil)
1255
1254
  ```
1256
1255
 
1257
1256
 
1257
+ **NOTE**: In most cases, you should use [Locator#fill](./locator#fill) instead. You only need to type characters if there is special keyboard handling on the page.
1258
+
1258
1259
  Focuses the element, and then sends a `keydown`, `keypress`/`input`, and `keyup` event for each character in the text.
1259
1260
 
1260
1261
  To press a special key, like `Control` or `ArrowDown`, use [Locator#press](./locator#press).
@@ -1273,7 +1273,7 @@ def route_from_har(
1273
1273
  ```
1274
1274
 
1275
1275
 
1276
- If specified the network requests that are made in the page will be served from the HAR file. Read more about [Replaying from HAR](https://playwright.dev/python/docs/network#replaying-from-har).
1276
+ If specified the network requests that are made in the page will be served from the HAR file. Read more about [Replaying from HAR](https://playwright.dev/python/docs/mock#replaying-from-har).
1277
1277
 
1278
1278
  Playwright will not serve requests intercepted by Service Worker from the HAR file. See [this](https://github.com/microsoft/playwright/issues/1090) issue. We recommend disabling Service Workers when using request interception by setting `Browser.newContext.serviceWorkers` to `'block'`.
1279
1279
 
@@ -1369,6 +1369,7 @@ def set_content(html, timeout: nil, waitUntil: nil)
1369
1369
  alias: `content=`
1370
1370
 
1371
1371
 
1372
+ This method internally calls [document.write()](https://developer.mozilla.org/en-US/docs/Web/API/Document/write), inheriting all its specific characteristics and behaviors.
1372
1373
 
1373
1374
  ## set_default_navigation_timeout
1374
1375
 
@@ -1741,7 +1742,7 @@ Waits for the matching request and returns it. See [waiting for event](https://p
1741
1742
  ```ruby
1742
1743
  page.content = '<form action="https://example.com/resource"><input type="submit" value="trigger request" /></form>'
1743
1744
  request = page.expect_request(/example.com\/resource/) do
1744
- page.get_by_text("trigger request").click()
1745
+ page.get_by_text("trigger request").click
1745
1746
  end
1746
1747
  puts request.headers
1747
1748
 
@@ -1750,7 +1751,7 @@ page.wait_for_load_state # wait for request finished.
1750
1751
  # or with a predicate
1751
1752
  page.content = '<form action="https://example.com/resource"><input type="submit" value="trigger request" /></form>'
1752
1753
  request = page.expect_request(->(req) { req.url.start_with? 'https://example.com/resource' }) do
1753
- page.get_by_text("trigger request").click()
1754
+ page.get_by_text("trigger request").click
1754
1755
  end
1755
1756
  puts request.headers
1756
1757
  ```
@@ -1780,7 +1781,7 @@ Returns the matched response. See [waiting for event](https://playwright.dev/pyt
1780
1781
  ```ruby
1781
1782
  page.content = '<form action="https://example.com/resource"><input type="submit" value="trigger response" /></form>'
1782
1783
  response = page.expect_response(/example.com\/resource/) do
1783
- page.get_by_text("trigger response").click()
1784
+ page.get_by_text("trigger response").click
1784
1785
  end
1785
1786
  puts response.body
1786
1787
  puts response.ok?
@@ -1790,7 +1791,7 @@ page.wait_for_load_state # wait for request finished.
1790
1791
  # or with a predicate
1791
1792
  page.content = '<form action="https://example.com/resource"><input type="submit" value="trigger response" /></form>'
1792
1793
  response = page.expect_response(->(res) { res.url.start_with? 'https://example.com/resource' }) do
1793
- page.get_by_text("trigger response").click()
1794
+ page.get_by_text("trigger response").click
1794
1795
  end
1795
1796
  puts response.body
1796
1797
  puts response.ok?
@@ -38,7 +38,7 @@ JAVASCRIPT
38
38
  # Register the engine. Selectors will be prefixed with "tag=".
39
39
  playwright.selectors.register("tag", script: tag_selector)
40
40
  playwright.chromium.launch do |browser|
41
- page = browser.new_page()
41
+ page = browser.new_page
42
42
  page.content = '<div><button>Click me</button></div>'
43
43
 
44
44
  # Use the selector prefixed with its name.
@@ -1,3 +1,5 @@
1
+ require 'stringio'
2
+
1
3
  module Playwright
2
4
  define_channel_owner :Artifact do
3
5
  private def after_initialize
@@ -18,6 +20,11 @@ module Playwright
18
20
  stream.save_as(path)
19
21
  end
20
22
 
23
+ def read_into_buffer
24
+ stream = ChannelOwners::Stream.from(@channel.send_message_to_server('stream'))
25
+ stream.read_all
26
+ end
27
+
21
28
  def failure
22
29
  @channel.send_message_to_server('failure')
23
30
  end
@@ -1,3 +1,5 @@
1
+ require 'fileutils'
2
+
1
3
  module Playwright
2
4
  # @ref https://github.com/microsoft/playwright-python/blob/master/playwright/_impl/_browser.py
3
5
  define_channel_owner :Browser do
@@ -86,16 +88,23 @@ module Playwright
86
88
  params = {
87
89
  page: page&.channel,
88
90
  categories: categories,
89
- path: path,
90
91
  screenshots: screenshots,
91
92
  }.compact
93
+ @cr_tracing_path = path
92
94
 
93
95
  @channel.send_message_to_server('startTracing', params)
94
96
  end
95
97
 
96
98
  def stop_tracing
97
- encoded_binary = @channel.send_message_to_server("stopTracing")
98
- return Base64.strict_decode64(encoded_binary)
99
+ artifact = ChannelOwners::Artifact.from(@channel.send_message_to_server("stopTracing"))
100
+ data = artifact.read_into_buffer
101
+ if @cr_tracing_path
102
+ File.dirname(@cr_tracing_path).tap do |dir|
103
+ FileUtils.mkdir_p(dir) unless File.exist?(dir)
104
+ end
105
+ File.open(@cr_tracing_path, 'wb') { |f| f.write(data) }
106
+ end
107
+ data
99
108
  end
100
109
 
101
110
  private def on_close(_ = {})
@@ -4,12 +4,27 @@ module Playwright
4
4
  define_channel_owner :Stream do
5
5
  def save_as(path)
6
6
  File.open(path, 'wb') do |f|
7
- loop do
8
- binary = @channel.send_message_to_server('read')
9
- break if !binary || binary.length == 0
10
- f.write(Base64.strict_decode64(binary))
7
+ read_with_block do |chunk|
8
+ f.write(chunk)
11
9
  end
12
10
  end
13
11
  end
12
+
13
+ def read_all(&block)
14
+ out = StringIO.new
15
+ read_with_block do |chunk|
16
+ out.write(chunk)
17
+ end
18
+ out.string
19
+ end
20
+
21
+ private def read_with_block(&block)
22
+ loop do
23
+ binary = @channel.send_message_to_server('read', size: 1024 * 1024)
24
+ break if !binary || binary.length == 0
25
+ decoded_chunk = Base64.strict_decode64(binary)
26
+ block.call(decoded_chunk)
27
+ end
28
+ end
14
29
  end
15
30
  end
@@ -52,6 +52,10 @@ module Playwright
52
52
  return URI(hash['u'])
53
53
  end
54
54
 
55
+ if hash.key?('bi')
56
+ return hash['bi'].to_i
57
+ end
58
+
55
59
  if hash.key?('r')
56
60
  # @see https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/RegExp
57
61
  # @see https://docs.ruby-lang.org/ja/latest/class/Regexp.html
@@ -34,7 +34,11 @@ module Playwright
34
34
  when true, false
35
35
  { b: value }
36
36
  when Numeric
37
- { n: value }
37
+ if !value.is_a?(Integer) || (-9007199254740992..9007199254740991).include?(value)
38
+ { n: value }
39
+ else
40
+ { bi: value.to_s }
41
+ end
38
42
  when String
39
43
  { s: value }
40
44
  when Time
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Playwright
4
- VERSION = '1.35.0'
5
- COMPATIBLE_PLAYWRIGHT_VERSION = '1.35.0'
4
+ VERSION = '1.37.0'
5
+ COMPATIBLE_PLAYWRIGHT_VERSION = '1.37.0'
6
6
  end
@@ -35,11 +35,11 @@ module Playwright
35
35
  #
36
36
  # ```python sync
37
37
  # def find_focused_node(node):
38
- # if (node.get("focused"))
38
+ # if node.get("focused"):
39
39
  # return node
40
40
  # for child in (node.get("children") or []):
41
41
  # found_node = find_focused_node(child)
42
- # if (found_node)
42
+ # if found_node:
43
43
  # return found_node
44
44
  # return None
45
45
  #
@@ -281,9 +281,9 @@ module Playwright
281
281
  #
282
282
  # ```python sync
283
283
  # def handle_route(route):
284
- # if ("my-string" in route.request.post_data)
284
+ # if ("my-string" in route.request.post_data):
285
285
  # route.fulfill(body="mocked-data")
286
- # else
286
+ # else:
287
287
  # route.continue_()
288
288
  # context.route("/api/**", handle_route)
289
289
  # ```
@@ -299,7 +299,7 @@ module Playwright
299
299
  end
300
300
 
301
301
  #
302
- # If specified the network requests that are made in the context will be served from the HAR file. Read more about [Replaying from HAR](../network.md#replaying-from-har).
302
+ # If specified the network requests that are made in the context will be served from the HAR file. Read more about [Replaying from HAR](../mock.md#replaying-from-har).
303
303
  #
304
304
  # Playwright will not serve requests intercepted by Service Worker from the HAR file. See [this](https://github.com/microsoft/playwright/issues/1090) issue. We recommend disabling Service Workers when using request interception by setting `Browser.newContext.serviceWorkers` to `'block'`.
305
305
  def route_from_har(
@@ -21,7 +21,12 @@ module Playwright
21
21
 
22
22
  #
23
23
  # This method attaches Playwright to an existing browser instance. When connecting to another browser launched via `BrowserType.launchServer` in Node.js, the major and minor version needs to match the client version (1.2.3 → is compatible with 1.2.x).
24
- def connect(wsEndpoint, headers: nil, slowMo: nil, timeout: nil)
24
+ def connect(
25
+ wsEndpoint,
26
+ exposeNetwork: nil,
27
+ headers: nil,
28
+ slowMo: nil,
29
+ timeout: nil)
25
30
  raise NotImplementedError.new('connect is not implemented yet.')
26
31
  end
27
32
 
@@ -187,7 +187,7 @@ module Playwright
187
187
  # ```python sync
188
188
  # tweet_handle = page.query_selector(".tweet")
189
189
  # assert tweet_handle.eval_on_selector(".like", "node => node.innerText") == "100"
190
- # assert tweet_handle.eval_on_selector(".retweets", "node => node.innerText") = "10"
190
+ # assert tweet_handle.eval_on_selector(".retweets", "node => node.innerText") == "10"
191
191
  # ```
192
192
  def eval_on_selector(selector, expression, arg: nil)
193
193
  wrap_impl(@impl.eval_on_selector(unwrap_impl(selector), unwrap_impl(expression), arg: unwrap_impl(arg)))
@@ -802,6 +802,8 @@ module Playwright
802
802
  wrap_impl(@impl.set_checked(unwrap_impl(selector), unwrap_impl(checked), force: unwrap_impl(force), noWaitAfter: unwrap_impl(noWaitAfter), position: unwrap_impl(position), strict: unwrap_impl(strict), timeout: unwrap_impl(timeout), trial: unwrap_impl(trial)))
803
803
  end
804
804
 
805
+ #
806
+ # This method internally calls [document.write()](https://developer.mozilla.org/en-US/docs/Web/API/Document/write), inheriting all its specific characteristics and behaviors.
805
807
  def set_content(html, timeout: nil, waitUntil: nil)
806
808
  wrap_impl(@impl.set_content(unwrap_impl(html), timeout: unwrap_impl(timeout), waitUntil: unwrap_impl(waitUntil)))
807
809
  end
@@ -67,7 +67,7 @@ module Playwright
67
67
  # **Usage**
68
68
  #
69
69
  # ```python sync
70
- # handle = page.evaluate_handle("({window, document})")
70
+ # handle = page.evaluate_handle("({ window, document })")
71
71
  # properties = handle.get_properties()
72
72
  # window_handle = properties.get("window")
73
73
  # document_handle = properties.get("document")
@@ -1,14 +1,13 @@
1
1
  module Playwright
2
2
  #
3
3
  # Locators are the central piece of Playwright's auto-waiting and retry-ability. In a nutshell, locators represent
4
- # a way to find element(s) on the page at any moment. Locator can be created with the [`method: Page.locator`] method.
4
+ # a way to find element(s) on the page at any moment. A locator can be created with the [`method: Page.locator`] method.
5
5
  #
6
6
  # [Learn more about locators](../locators.md).
7
7
  class Locator < PlaywrightApi
8
8
 
9
9
  #
10
- # When locator points to a list of elements, returns array of locators, pointing
11
- # to respective elements.
10
+ # When the locator points to a list of elements, this returns an array of locators, pointing to their respective elements.
12
11
  #
13
12
  # **NOTE**: [`method: Locator.all`] does not wait for elements to match the locator, and instead immediately returns whatever is present in the page.
14
13
  #
@@ -406,10 +405,9 @@ module Playwright
406
405
  # ```python sync
407
406
  # row_locator = page.locator("tr")
408
407
  # # ...
409
- # row_locator
410
- # .filter(has_text="text in column 1")
411
- # .filter(has=page.get_by_role("button", name="column 2 button"))
412
- # .screenshot()
408
+ # row_locator.filter(has_text="text in column 1").filter(
409
+ # has=page.get_by_role("button", name="column 2 button")
410
+ # ).screenshot()
413
411
  # ```
414
412
  def filter(has: nil, hasNot: nil, hasNotText: nil, hasText: nil)
415
413
  wrap_impl(@impl.filter(has: unwrap_impl(has), hasNot: unwrap_impl(hasNot), hasNotText: unwrap_impl(hasNotText), hasText: unwrap_impl(hasText)))
@@ -823,7 +821,7 @@ module Playwright
823
821
  # new_email = page.get_by_role("button", name="New")
824
822
  # dialog = page.get_by_text("Confirm security settings")
825
823
  # expect(new_email.or_(dialog)).to_be_visible()
826
- # if (dialog.is_visible())
824
+ # if (dialog.is_visible()):
827
825
  # page.get_by_role("button", name="Dismiss").click()
828
826
  # new_email.click()
829
827
  # ```
@@ -1068,6 +1066,8 @@ module Playwright
1068
1066
  wrap_impl(@impl.text_content(timeout: unwrap_impl(timeout)))
1069
1067
  end
1070
1068
 
1069
+ #
1070
+ # **NOTE**: In most cases, you should use [`method: Locator.fill`] instead. You only need to type characters if there is special keyboard handling on the page.
1071
1071
  #
1072
1072
  # Focuses the element, and then sends a `keydown`, `keypress`/`input`, and `keyup` event for each character in the text.
1073
1073
  #
@@ -1115,9 +1115,9 @@ module Playwright
1115
1115
  #
1116
1116
  # ```python sync
1117
1117
  # def handle_route(route):
1118
- # if ("my-string" in route.request.post_data)
1118
+ # if ("my-string" in route.request.post_data):
1119
1119
  # route.fulfill(body="mocked-data")
1120
- # else
1120
+ # else:
1121
1121
  # route.continue_()
1122
1122
  # page.route("/api/**", handle_route)
1123
1123
  # ```
@@ -1133,7 +1133,7 @@ module Playwright
1133
1133
  end
1134
1134
 
1135
1135
  #
1136
- # If specified the network requests that are made in the page will be served from the HAR file. Read more about [Replaying from HAR](../network.md#replaying-from-har).
1136
+ # If specified the network requests that are made in the page will be served from the HAR file. Read more about [Replaying from HAR](../mock.md#replaying-from-har).
1137
1137
  #
1138
1138
  # Playwright will not serve requests intercepted by Service Worker from the HAR file. See [this](https://github.com/microsoft/playwright/issues/1090) issue. We recommend disabling Service Workers when using request interception by setting `Browser.newContext.serviceWorkers` to `'block'`.
1139
1139
  def route_from_har(
@@ -1221,6 +1221,8 @@ module Playwright
1221
1221
  wrap_impl(@impl.set_checked(unwrap_impl(selector), unwrap_impl(checked), force: unwrap_impl(force), noWaitAfter: unwrap_impl(noWaitAfter), position: unwrap_impl(position), strict: unwrap_impl(strict), timeout: unwrap_impl(timeout), trial: unwrap_impl(trial)))
1222
1222
  end
1223
1223
 
1224
+ #
1225
+ # This method internally calls [document.write()](https://developer.mozilla.org/en-US/docs/Web/API/Document/write), inheriting all its specific characteristics and behaviors.
1224
1226
  def set_content(html, timeout: nil, waitUntil: nil)
1225
1227
  wrap_impl(@impl.set_content(unwrap_impl(html), timeout: unwrap_impl(timeout), waitUntil: unwrap_impl(waitUntil)))
1226
1228
  end
@@ -77,17 +77,17 @@ module Playwright
77
77
  # Terminates this instance of Playwright in case it was created bypassing the Python context manager. This is useful in REPL applications.
78
78
  #
79
79
  # ```py
80
- # >>> from playwright.sync_api import sync_playwright
80
+ # from playwright.sync_api import sync_playwright
81
81
  #
82
- # >>> playwright = sync_playwright().start()
82
+ # playwright = sync_playwright().start()
83
83
  #
84
- # >>> browser = playwright.chromium.launch()
85
- # >>> page = browser.new_page()
86
- # >>> page.goto("https://playwright.dev/")
87
- # >>> page.screenshot(path="example.png")
88
- # >>> browser.close()
84
+ # browser = playwright.chromium.launch()
85
+ # page = browser.new_page()
86
+ # page.goto("https://playwright.dev/")
87
+ # page.screenshot(path="example.png")
88
+ # browser.close()
89
89
  #
90
- # >>> playwright.stop()
90
+ # playwright.stop()
91
91
  # ```
92
92
  def stop
93
93
  raise NotImplementedError.new('stop is not implemented yet.')
@@ -118,13 +118,13 @@ module Playwright
118
118
  end
119
119
 
120
120
  # @nodoc
121
- def from_service_worker?
122
- wrap_impl(@impl.from_service_worker?)
121
+ def ok?
122
+ wrap_impl(@impl.ok?)
123
123
  end
124
124
 
125
125
  # @nodoc
126
- def ok?
127
- wrap_impl(@impl.ok?)
126
+ def from_service_worker?
127
+ wrap_impl(@impl.from_service_worker?)
128
128
  end
129
129
 
130
130
  # -- inherited from EventEmitter --
@@ -22,7 +22,7 @@ module Playwright
22
22
  # # override headers
23
23
  # headers = {
24
24
  # **request.headers,
25
- # "foo": "foo-value" # set "foo" header
25
+ # "foo": "foo-value", # set "foo" header
26
26
  # "bar": None # remove "bar" header
27
27
  # }
28
28
  # route.continue_(headers=headers)
@@ -84,7 +84,7 @@ module Playwright
84
84
  # # override headers
85
85
  # headers = {
86
86
  # **request.headers,
87
- # "foo": "foo-value" # set "foo" header
87
+ # "foo": "foo-value", # set "foo" header
88
88
  # "bar": None # remove "bar" header
89
89
  # }
90
90
  # route.fallback(headers=headers)
@@ -47,13 +47,13 @@ module Playwright
47
47
  end
48
48
 
49
49
  # @nodoc
50
- def context=(req)
51
- wrap_impl(@impl.context=(unwrap_impl(req)))
50
+ def page=(req)
51
+ wrap_impl(@impl.page=(unwrap_impl(req)))
52
52
  end
53
53
 
54
54
  # @nodoc
55
- def page=(req)
56
- wrap_impl(@impl.page=(unwrap_impl(req)))
55
+ def context=(req)
56
+ wrap_impl(@impl.context=(unwrap_impl(req)))
57
57
  end
58
58
 
59
59
  # -- 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.35.0
4
+ version: 1.37.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - YusukeIwaki
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-06-21 00:00:00.000000000 Z
11
+ date: 2023-08-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: concurrent-ruby
@@ -401,5 +401,5 @@ requirements: []
401
401
  rubygems_version: 3.3.26
402
402
  signing_key:
403
403
  specification_version: 4
404
- summary: The Ruby binding of playwright driver 1.35.0
404
+ summary: The Ruby binding of playwright driver 1.37.0
405
405
  test_files: []