playwright-ruby-client 1.19.0 → 1.20.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +1 -1
- data/documentation/docs/api/element_handle.md +2 -0
- data/documentation/docs/api/experimental/android.md +1 -1
- data/documentation/docs/api/locator.md +11 -0
- data/documentation/docs/api/page.md +6 -3
- data/documentation/docs/article/guides/playwright_on_alpine_linux.md +5 -5
- data/documentation/docs/include/api_coverage.md +1 -0
- data/lib/playwright/channel_owners/android.rb +2 -2
- data/lib/playwright/channel_owners/browser_context.rb +1 -0
- data/lib/playwright/channel_owners/element_handle.rb +8 -0
- data/lib/playwright/channel_owners/frame.rb +4 -0
- data/lib/playwright/channel_owners/page.rb +8 -0
- data/lib/playwright/locator_impl.rb +15 -0
- data/lib/playwright/route_handler.rb +5 -3
- data/lib/playwright/transport.rb +14 -1
- data/lib/playwright/version.rb +2 -2
- data/lib/playwright_api/android.rb +2 -2
- data/lib/playwright_api/element_handle.rb +3 -1
- data/lib/playwright_api/frame.rb +5 -0
- data/lib/playwright_api/locator.rb +9 -1
- data/lib/playwright_api/page.rb +13 -10
- data/lib/playwright_api/playwright.rb +4 -4
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a0ac92a21e56cb8136a67c37b4f0a7f5edd5668124c8f54a7d676fd384568fd6
|
4
|
+
data.tar.gz: 8d1f15d0f9c3dfc190d0cc0976814ab6bf90a927af722d4164861e57c93564a2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 746dcb1563f9777c374572d2b7ecfbde7833a3ce1b546933958ae920a417d1e474e27c8b569b3fc25cc117735e07bdb420dec838baadebe6375ab83d13c959bd
|
7
|
+
data.tar.gz: a9dca767fdfec65ba0ef854677e600ef00fabfbdd60ad534fb5182e292c603eb4cbb1b1eb77440f85415d5189bce902d3899389033c591f6e1d1d925de67afc4
|
data/README.md
CHANGED
@@ -162,7 +162,7 @@ If your environment doesn't accept installing browser or creating browser proces
|
|
162
162
|
For launching Playwright server, just execute:
|
163
163
|
|
164
164
|
```
|
165
|
-
npx playwright install && npx playwright run-server 8080
|
165
|
+
npx playwright install && npx playwright run-server --port 8080
|
166
166
|
```
|
167
167
|
|
168
168
|
and we can connect to the server with the code like this:
|
@@ -325,6 +325,15 @@ def get_attribute(name, timeout: nil)
|
|
325
325
|
|
326
326
|
Returns element attribute value.
|
327
327
|
|
328
|
+
## highlight
|
329
|
+
|
330
|
+
```
|
331
|
+
def highlight
|
332
|
+
```
|
333
|
+
|
334
|
+
Highlight the corresponding element(s) on the screen. Useful for debugging, don't commit the code that uses
|
335
|
+
[Locator#highlight](./locator#highlight).
|
336
|
+
|
328
337
|
## hover
|
329
338
|
|
330
339
|
```
|
@@ -480,6 +489,8 @@ modifier, modifier is pressed and being held while the subsequent key is being p
|
|
480
489
|
|
481
490
|
```
|
482
491
|
def screenshot(
|
492
|
+
animations: nil,
|
493
|
+
mask: nil,
|
483
494
|
omitBackground: nil,
|
484
495
|
path: nil,
|
485
496
|
quality: nil,
|
@@ -1012,8 +1012,10 @@ To remove a route with its handler you can use [Page#unroute](./page#unroute).
|
|
1012
1012
|
|
1013
1013
|
```
|
1014
1014
|
def screenshot(
|
1015
|
+
animations: nil,
|
1015
1016
|
clip: nil,
|
1016
1017
|
fullPage: nil,
|
1018
|
+
mask: nil,
|
1017
1019
|
omitBackground: nil,
|
1018
1020
|
path: nil,
|
1019
1021
|
quality: nil,
|
@@ -1167,9 +1169,10 @@ alias: `viewport_size=`
|
|
1167
1169
|
In the case of multiple pages in a single browser, each page can have its own viewport size. However,
|
1168
1170
|
[Browser#new_context](./browser#new_context) allows to set viewport size (and more) for all pages in the context at once.
|
1169
1171
|
|
1170
|
-
|
1171
|
-
viewport size before navigating to the page. [Page#set_viewport_size](./page#set_viewport_size) will also reset `screen`
|
1172
|
-
[Browser#new_context](./browser#new_context) with `screen` and `viewport` parameters if you need better control of these
|
1172
|
+
[Page#set_viewport_size](./page#set_viewport_size) will resize the page. A lot of websites don't expect phones to change size, so you
|
1173
|
+
should set the viewport size before navigating to the page. [Page#set_viewport_size](./page#set_viewport_size) will also reset `screen`
|
1174
|
+
size, use [Browser#new_context](./browser#new_context) with `screen` and `viewport` parameters if you need better control of these
|
1175
|
+
properties.
|
1173
1176
|
|
1174
1177
|
```ruby
|
1175
1178
|
page.viewport_size = { width: 640, height: 480 }
|
@@ -27,7 +27,7 @@ This article introduces a way to separate environments into client (for executin
|
|
27
27
|
|
28
28
|
## Overview
|
29
29
|
|
30
|
-
|
30
|
+
Playwright Ruby client is running on Alpine Linux. It just sends/receives JSON messages of Playwright-protocol via WebSocket.
|
31
31
|
|
32
32
|
Playwright server is running on a container of [official Docker image](https://hub.docker.com/_/microsoft-playwright). It just operates browsers in response to the JSON messages from WebSocket.
|
33
33
|
|
@@ -69,7 +69,7 @@ end
|
|
69
69
|
|
70
70
|
### Server code
|
71
71
|
|
72
|
-
With the [official Docker image](https://hub.docker.com/_/microsoft-playwright) or in the local development environment with Node.js, just execute `npx playwright install && npx playwright run-server $PORT`. (`$PORT` is a port number of the server)
|
72
|
+
With the [official Docker image](https://hub.docker.com/_/microsoft-playwright) or in the local development environment with Node.js, just execute `npx playwright install && npx playwright run-server --port $PORT --path /ws`. (`$PORT` is a port number of the server)
|
73
73
|
|
74
74
|
If custom Docker image is preferred, build it as follows:
|
75
75
|
|
@@ -80,7 +80,7 @@ WORKDIR /root
|
|
80
80
|
RUN npm install playwright@1.12.3 && ./node_modules/.bin/playwright install
|
81
81
|
|
82
82
|
ENV PORT 8888
|
83
|
-
CMD ["./node_modules/.bin/playwright", "run-server", "$PORT"]
|
83
|
+
CMD ["./node_modules/.bin/playwright", "run-server", "--port", "$PORT", "--path", "/ws"]
|
84
84
|
```
|
85
85
|
|
86
86
|
## Browser server/client
|
@@ -100,7 +100,7 @@ end
|
|
100
100
|
|
101
101
|
### Server code
|
102
102
|
|
103
|
-
For instant use, `npx playwright launch-server chromium` generates a WebSocket endpoint URL with a random path.
|
103
|
+
For instant use, `npx playwright launch-server --browser chromium` generates a WebSocket endpoint URL with a random path.
|
104
104
|
|
105
105
|
More customization can be done by implementing JavaScript server like below:
|
106
106
|
|
@@ -138,7 +138,7 @@ DEBUG=1 bundle exec ruby some-automation-with-playwright.rb
|
|
138
138
|
Just set an environment variable `DEBUG=pw:*` or `DEBUG=pw:server`
|
139
139
|
|
140
140
|
```
|
141
|
-
DEBUG=pw:* npx playwright run-server 8888
|
141
|
+
DEBUG=pw:* npx playwright run-server --port 8888 --path /ws
|
142
142
|
```
|
143
143
|
|
144
144
|
See [the official documentation](https://playwright.dev/docs/debug/#verbose-api-logs) for details.
|
@@ -4,8 +4,8 @@ module Playwright
|
|
4
4
|
@timeout_settings = TimeoutSettings.new
|
5
5
|
end
|
6
6
|
|
7
|
-
def devices
|
8
|
-
resp = @channel.send_message_to_server('devices')
|
7
|
+
def devices(port: nil)
|
8
|
+
resp = @channel.send_message_to_server('devices', port: port)
|
9
9
|
resp.map { |device| ChannelOwners::AndroidDevice.from(device) }
|
10
10
|
end
|
11
11
|
end
|
@@ -13,6 +13,7 @@ module Playwright
|
|
13
13
|
@timeout_settings = TimeoutSettings.new
|
14
14
|
@service_workers = Set.new
|
15
15
|
@background_pages = Set.new
|
16
|
+
@owner_page = nil
|
16
17
|
|
17
18
|
@tracing = ChannelOwners::Tracing.from(@initializer['tracing'])
|
18
19
|
@request = ChannelOwners::APIRequestContext.from(@initializer['APIRequestContext'])
|
@@ -281,6 +281,8 @@ module Playwright
|
|
281
281
|
end
|
282
282
|
|
283
283
|
def screenshot(
|
284
|
+
animations: nil,
|
285
|
+
mask: nil,
|
284
286
|
omitBackground: nil,
|
285
287
|
path: nil,
|
286
288
|
quality: nil,
|
@@ -288,12 +290,18 @@ module Playwright
|
|
288
290
|
type: nil)
|
289
291
|
|
290
292
|
params = {
|
293
|
+
animations: animations,
|
291
294
|
omitBackground: omitBackground,
|
292
295
|
path: path,
|
293
296
|
quality: quality,
|
294
297
|
timeout: timeout,
|
295
298
|
type: type,
|
296
299
|
}.compact
|
300
|
+
if mask.is_a?(Enumerable)
|
301
|
+
params[:mask] = mask.map do |locator|
|
302
|
+
locator.send(:to_protocol)
|
303
|
+
end
|
304
|
+
end
|
297
305
|
encoded_binary = @channel.send_message_to_server('screenshot', params)
|
298
306
|
decoded_binary = Base64.strict_decode64(encoded_binary)
|
299
307
|
if path
|
@@ -615,6 +615,10 @@ module Playwright
|
|
615
615
|
@channel.send_message_to_server('title')
|
616
616
|
end
|
617
617
|
|
618
|
+
def highlight(selector)
|
619
|
+
@channel.send_message_to_server('highlight', selector: selector)
|
620
|
+
end
|
621
|
+
|
618
622
|
# @param page [Page]
|
619
623
|
# @note This method should be used internally. Accessed via .send method, so keep private!
|
620
624
|
private def update_page_from_page(page)
|
@@ -414,6 +414,8 @@ module Playwright
|
|
414
414
|
fullPage: nil,
|
415
415
|
clip: nil,
|
416
416
|
omitBackground: nil,
|
417
|
+
animations: nil,
|
418
|
+
mask: nil,
|
417
419
|
timeout: nil)
|
418
420
|
|
419
421
|
params = {
|
@@ -422,8 +424,14 @@ module Playwright
|
|
422
424
|
fullPage: fullPage,
|
423
425
|
clip: clip,
|
424
426
|
omitBackground: omitBackground,
|
427
|
+
animations: animations,
|
425
428
|
timeout: timeout,
|
426
429
|
}.compact
|
430
|
+
if mask.is_a?(Enumerable)
|
431
|
+
params[:mask] = mask.map do |locator|
|
432
|
+
locator.send(:to_protocol)
|
433
|
+
end
|
434
|
+
end
|
427
435
|
encoded_binary = @channel.send_message_to_server('screenshot', params)
|
428
436
|
decoded_binary = Base64.strict_decode64(encoded_binary)
|
429
437
|
if path
|
@@ -55,6 +55,13 @@ module Playwright
|
|
55
55
|
"Locator@#{@selector}"
|
56
56
|
end
|
57
57
|
|
58
|
+
private def to_protocol
|
59
|
+
{
|
60
|
+
frame: @frame.channel,
|
61
|
+
selector: @selector,
|
62
|
+
}
|
63
|
+
end
|
64
|
+
|
58
65
|
class DifferentFrameError < StandardError
|
59
66
|
def initialize
|
60
67
|
super('Inner "has" locator must belong to the same frame.')
|
@@ -306,6 +313,8 @@ module Playwright
|
|
306
313
|
end
|
307
314
|
|
308
315
|
def screenshot(
|
316
|
+
animations: nil,
|
317
|
+
mask: nil,
|
309
318
|
omitBackground: nil,
|
310
319
|
path: nil,
|
311
320
|
quality: nil,
|
@@ -313,6 +322,8 @@ module Playwright
|
|
313
322
|
type: nil)
|
314
323
|
with_element(timeout: timeout) do |handle, options|
|
315
324
|
handle.screenshot(
|
325
|
+
animations: animations,
|
326
|
+
mask: mask,
|
316
327
|
omitBackground: omitBackground,
|
317
328
|
path: path,
|
318
329
|
quality: quality,
|
@@ -416,5 +427,9 @@ module Playwright
|
|
416
427
|
def all_text_contents
|
417
428
|
@frame.eval_on_selector_all(@selector, "ee => ee.map(e => e.textContent || '')")
|
418
429
|
end
|
430
|
+
|
431
|
+
def highlight
|
432
|
+
@frame.highlight(@selector)
|
433
|
+
end
|
419
434
|
end
|
420
435
|
end
|
@@ -51,9 +51,11 @@ module Playwright
|
|
51
51
|
@counter.increment
|
52
52
|
|
53
53
|
Concurrent::Promises.future do
|
54
|
-
|
55
|
-
|
56
|
-
|
54
|
+
begin
|
55
|
+
@handler.call(route, request)
|
56
|
+
rescue => err
|
57
|
+
puts err, err.backtrace
|
58
|
+
end
|
57
59
|
end
|
58
60
|
end
|
59
61
|
|
data/lib/playwright/transport.rb
CHANGED
@@ -46,7 +46,8 @@ module Playwright
|
|
46
46
|
#
|
47
47
|
# @note This method blocks until playwright-cli exited. Consider using Thread or Future.
|
48
48
|
def async_run
|
49
|
-
|
49
|
+
popen3_args = {}
|
50
|
+
@stdin, @stdout, @stderr, @thread = run_driver_with_open3
|
50
51
|
@stdin.binmode # Ensure Strings are written 1:1 without encoding conversion, necessary for integer values
|
51
52
|
|
52
53
|
Thread.new { handle_stdout }
|
@@ -55,6 +56,18 @@ module Playwright
|
|
55
56
|
|
56
57
|
private
|
57
58
|
|
59
|
+
def run_driver_with_open3
|
60
|
+
Open3.popen3("#{@driver_executable_path} run-driver", { pgroup: true })
|
61
|
+
rescue ArgumentError => err
|
62
|
+
# Windows doesn't accept pgroup parameter.
|
63
|
+
# ArgumentError: wrong exec option symbol: pgroup
|
64
|
+
if err.message =~ /pgroup/
|
65
|
+
Open3.popen3("#{@driver_executable_path} run-driver")
|
66
|
+
else
|
67
|
+
raise
|
68
|
+
end
|
69
|
+
end
|
70
|
+
|
58
71
|
def handle_stdout(packet_size: 32_768)
|
59
72
|
while chunk = @stdout.read(4)
|
60
73
|
length = chunk.unpack1('V') # unsigned 32bit, little endian
|
data/lib/playwright/version.rb
CHANGED
@@ -26,8 +26,8 @@ module Playwright
|
|
26
26
|
class Android < PlaywrightApi
|
27
27
|
|
28
28
|
# Returns the list of detected Android devices.
|
29
|
-
def devices
|
30
|
-
wrap_impl(@impl.devices)
|
29
|
+
def devices(port: nil)
|
30
|
+
wrap_impl(@impl.devices(port: unwrap_impl(port)))
|
31
31
|
end
|
32
32
|
|
33
33
|
# This setting will change the default maximum time for all the methods accepting `timeout` option.
|
@@ -346,12 +346,14 @@ module Playwright
|
|
346
346
|
# This method waits for the [actionability](./actionability.md) checks, then scrolls element into view before taking a
|
347
347
|
# screenshot. If the element is detached from DOM, the method throws an error.
|
348
348
|
def screenshot(
|
349
|
+
animations: nil,
|
350
|
+
mask: nil,
|
349
351
|
omitBackground: nil,
|
350
352
|
path: nil,
|
351
353
|
quality: nil,
|
352
354
|
timeout: nil,
|
353
355
|
type: nil)
|
354
|
-
wrap_impl(@impl.screenshot(omitBackground: unwrap_impl(omitBackground), path: unwrap_impl(path), quality: unwrap_impl(quality), timeout: unwrap_impl(timeout), type: unwrap_impl(type)))
|
356
|
+
wrap_impl(@impl.screenshot(animations: unwrap_impl(animations), mask: unwrap_impl(mask), omitBackground: unwrap_impl(omitBackground), path: unwrap_impl(path), quality: unwrap_impl(quality), timeout: unwrap_impl(timeout), type: unwrap_impl(type)))
|
355
357
|
end
|
356
358
|
|
357
359
|
# This method waits for [actionability](./actionability.md) checks, then tries to scroll element into view, unless it is
|
data/lib/playwright_api/frame.rb
CHANGED
@@ -788,6 +788,11 @@ module Playwright
|
|
788
788
|
wrap_impl(@impl.detached=(unwrap_impl(req)))
|
789
789
|
end
|
790
790
|
|
791
|
+
# @nodoc
|
792
|
+
def highlight(selector)
|
793
|
+
wrap_impl(@impl.highlight(unwrap_impl(selector)))
|
794
|
+
end
|
795
|
+
|
791
796
|
# -- inherited from EventEmitter --
|
792
797
|
# @nodoc
|
793
798
|
def off(event, callback)
|
@@ -250,6 +250,12 @@ module Playwright
|
|
250
250
|
wrap_impl(@impl.get_attribute(unwrap_impl(name), timeout: unwrap_impl(timeout)))
|
251
251
|
end
|
252
252
|
|
253
|
+
# Highlight the corresponding element(s) on the screen. Useful for debugging, don't commit the code that uses
|
254
|
+
# [`method: Locator.highlight`].
|
255
|
+
def highlight
|
256
|
+
wrap_impl(@impl.highlight)
|
257
|
+
end
|
258
|
+
|
253
259
|
# This method hovers over the element by performing the following steps:
|
254
260
|
# 1. Wait for [actionability](./actionability.md) checks on the element, unless `force` option is set.
|
255
261
|
# 1. Scroll the element into view if needed.
|
@@ -361,12 +367,14 @@ module Playwright
|
|
361
367
|
# This method waits for the [actionability](./actionability.md) checks, then scrolls element into view before taking a
|
362
368
|
# screenshot. If the element is detached from DOM, the method throws an error.
|
363
369
|
def screenshot(
|
370
|
+
animations: nil,
|
371
|
+
mask: nil,
|
364
372
|
omitBackground: nil,
|
365
373
|
path: nil,
|
366
374
|
quality: nil,
|
367
375
|
timeout: nil,
|
368
376
|
type: nil)
|
369
|
-
wrap_impl(@impl.screenshot(omitBackground: unwrap_impl(omitBackground), path: unwrap_impl(path), quality: unwrap_impl(quality), timeout: unwrap_impl(timeout), type: unwrap_impl(type)))
|
377
|
+
wrap_impl(@impl.screenshot(animations: unwrap_impl(animations), mask: unwrap_impl(mask), omitBackground: unwrap_impl(omitBackground), path: unwrap_impl(path), quality: unwrap_impl(quality), timeout: unwrap_impl(timeout), type: unwrap_impl(type)))
|
370
378
|
end
|
371
379
|
|
372
380
|
# This method waits for [actionability](./actionability.md) checks, then tries to scroll element into view, unless it is
|
data/lib/playwright_api/page.rb
CHANGED
@@ -891,14 +891,16 @@ module Playwright
|
|
891
891
|
|
892
892
|
# Returns the buffer with the captured screenshot.
|
893
893
|
def screenshot(
|
894
|
+
animations: nil,
|
894
895
|
clip: nil,
|
895
896
|
fullPage: nil,
|
897
|
+
mask: nil,
|
896
898
|
omitBackground: nil,
|
897
899
|
path: nil,
|
898
900
|
quality: nil,
|
899
901
|
timeout: nil,
|
900
902
|
type: nil)
|
901
|
-
wrap_impl(@impl.screenshot(clip: unwrap_impl(clip), fullPage: unwrap_impl(fullPage), omitBackground: unwrap_impl(omitBackground), path: unwrap_impl(path), quality: unwrap_impl(quality), timeout: unwrap_impl(timeout), type: unwrap_impl(type)))
|
903
|
+
wrap_impl(@impl.screenshot(animations: unwrap_impl(animations), clip: unwrap_impl(clip), fullPage: unwrap_impl(fullPage), mask: unwrap_impl(mask), omitBackground: unwrap_impl(omitBackground), path: unwrap_impl(path), quality: unwrap_impl(quality), timeout: unwrap_impl(timeout), type: unwrap_impl(type)))
|
902
904
|
end
|
903
905
|
|
904
906
|
# This method waits for an element matching `selector`, waits for [actionability](./actionability.md) checks, waits until
|
@@ -1016,9 +1018,10 @@ module Playwright
|
|
1016
1018
|
# In the case of multiple pages in a single browser, each page can have its own viewport size. However,
|
1017
1019
|
# [`method: Browser.newContext`] allows to set viewport size (and more) for all pages in the context at once.
|
1018
1020
|
#
|
1019
|
-
# `
|
1020
|
-
# viewport size before navigating to the page. [`method: Page.setViewportSize`] will also reset `screen`
|
1021
|
-
# [`method: Browser.newContext`] with `screen` and `viewport` parameters if you need better control of these
|
1021
|
+
# [`method: Page.setViewportSize`] will resize the page. A lot of websites don't expect phones to change size, so you
|
1022
|
+
# should set the viewport size before navigating to the page. [`method: Page.setViewportSize`] will also reset `screen`
|
1023
|
+
# size, use [`method: Browser.newContext`] with `screen` and `viewport` parameters if you need better control of these
|
1024
|
+
# properties.
|
1022
1025
|
#
|
1023
1026
|
# ```python sync
|
1024
1027
|
# page = browser.new_page()
|
@@ -1387,13 +1390,13 @@ module Playwright
|
|
1387
1390
|
end
|
1388
1391
|
|
1389
1392
|
# @nodoc
|
1390
|
-
def
|
1391
|
-
wrap_impl(@impl.
|
1393
|
+
def start_js_coverage(resetOnNavigation: nil, reportAnonymousScripts: nil)
|
1394
|
+
wrap_impl(@impl.start_js_coverage(resetOnNavigation: unwrap_impl(resetOnNavigation), reportAnonymousScripts: unwrap_impl(reportAnonymousScripts)))
|
1392
1395
|
end
|
1393
1396
|
|
1394
1397
|
# @nodoc
|
1395
|
-
def
|
1396
|
-
wrap_impl(@impl.
|
1398
|
+
def start_css_coverage(resetOnNavigation: nil, reportAnonymousScripts: nil)
|
1399
|
+
wrap_impl(@impl.start_css_coverage(resetOnNavigation: unwrap_impl(resetOnNavigation), reportAnonymousScripts: unwrap_impl(reportAnonymousScripts)))
|
1397
1400
|
end
|
1398
1401
|
|
1399
1402
|
# @nodoc
|
@@ -1402,8 +1405,8 @@ module Playwright
|
|
1402
1405
|
end
|
1403
1406
|
|
1404
1407
|
# @nodoc
|
1405
|
-
def
|
1406
|
-
wrap_impl(@impl.
|
1408
|
+
def stop_css_coverage
|
1409
|
+
wrap_impl(@impl.stop_css_coverage)
|
1407
1410
|
end
|
1408
1411
|
|
1409
1412
|
# @nodoc
|
@@ -87,13 +87,13 @@ module Playwright
|
|
87
87
|
end
|
88
88
|
|
89
89
|
# @nodoc
|
90
|
-
def
|
91
|
-
wrap_impl(@impl.
|
90
|
+
def android
|
91
|
+
wrap_impl(@impl.android)
|
92
92
|
end
|
93
93
|
|
94
94
|
# @nodoc
|
95
|
-
def
|
96
|
-
wrap_impl(@impl.
|
95
|
+
def electron
|
96
|
+
wrap_impl(@impl.electron)
|
97
97
|
end
|
98
98
|
|
99
99
|
# -- 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.
|
4
|
+
version: 1.20.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- YusukeIwaki
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-
|
11
|
+
date: 2022-03-26 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: concurrent-ruby
|
@@ -396,5 +396,5 @@ requirements: []
|
|
396
396
|
rubygems_version: 3.3.7
|
397
397
|
signing_key:
|
398
398
|
specification_version: 4
|
399
|
-
summary: The Ruby binding of playwright driver 1.
|
399
|
+
summary: The Ruby binding of playwright driver 1.20.1
|
400
400
|
test_files: []
|