playwright-ruby-client 0.0.8 → 0.3.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 +4 -4
- data/README.md +3 -3
- data/docs/api_coverage.md +159 -101
- data/lib/playwright.rb +5 -2
- data/lib/playwright/{input_types/android_input.rb → android_input_impl.rb} +5 -1
- data/lib/playwright/api_implementation.rb +18 -0
- data/lib/playwright/channel.rb +13 -6
- data/lib/playwright/channel_owner.rb +3 -5
- data/lib/playwright/channel_owners/android.rb +1 -1
- data/lib/playwright/channel_owners/android_device.rb +12 -12
- data/lib/playwright/channel_owners/binding_call.rb +3 -0
- data/lib/playwright/channel_owners/browser.rb +1 -1
- data/lib/playwright/channel_owners/browser_context.rb +157 -3
- data/lib/playwright/channel_owners/dialog.rb +28 -0
- data/lib/playwright/channel_owners/download.rb +27 -0
- data/lib/playwright/channel_owners/element_handle.rb +15 -4
- data/lib/playwright/channel_owners/frame.rb +24 -5
- data/lib/playwright/channel_owners/js_handle.rb +1 -1
- data/lib/playwright/channel_owners/page.rb +367 -29
- data/lib/playwright/channel_owners/playwright.rb +4 -0
- data/lib/playwright/channel_owners/request.rb +35 -3
- data/lib/playwright/channel_owners/response.rb +60 -0
- data/lib/playwright/channel_owners/route.rb +78 -0
- data/lib/playwright/channel_owners/selectors.rb +19 -1
- data/lib/playwright/errors.rb +1 -1
- data/lib/playwright/event_emitter.rb +8 -1
- data/lib/playwright/event_emitter_proxy.rb +49 -0
- data/lib/playwright/file_chooser_impl.rb +23 -0
- data/lib/playwright/http_headers.rb +20 -0
- data/lib/playwright/input_files.rb +1 -1
- data/lib/playwright/{input_types/keyboard.rb → keyboard_impl.rb} +5 -1
- data/lib/playwright/mouse_impl.rb +7 -0
- data/lib/playwright/playwright_api.rb +59 -20
- data/lib/playwright/route_handler_entry.rb +36 -0
- data/lib/playwright/select_option_values.rb +14 -4
- data/lib/playwright/touchscreen_impl.rb +7 -0
- data/lib/playwright/utils.rb +4 -3
- data/lib/playwright/version.rb +1 -1
- data/lib/playwright/wait_helper.rb +1 -1
- data/lib/playwright_api/android.rb +82 -11
- data/lib/playwright_api/android_device.rb +148 -32
- data/lib/playwright_api/android_input.rb +17 -13
- data/lib/playwright_api/android_socket.rb +16 -0
- data/lib/playwright_api/android_web_view.rb +21 -0
- data/lib/playwright_api/binding_call.rb +14 -5
- data/lib/playwright_api/browser.rb +22 -23
- data/lib/playwright_api/browser_context.rb +49 -35
- data/lib/playwright_api/browser_type.rb +24 -64
- data/lib/playwright_api/chromium_browser_context.rb +10 -8
- data/lib/playwright_api/console_message.rb +10 -6
- data/lib/playwright_api/dialog.rb +37 -6
- data/lib/playwright_api/download.rb +28 -11
- data/lib/playwright_api/element_handle.rb +107 -96
- data/lib/playwright_api/file_chooser.rb +18 -10
- data/lib/playwright_api/frame.rb +124 -117
- data/lib/playwright_api/js_handle.rb +20 -22
- data/lib/playwright_api/keyboard.rb +5 -5
- data/lib/playwright_api/page.rb +206 -148
- data/lib/playwright_api/playwright.rb +33 -45
- data/lib/playwright_api/request.rb +11 -12
- data/lib/playwright_api/response.rb +30 -16
- data/lib/playwright_api/route.rb +27 -5
- data/lib/playwright_api/selectors.rb +14 -10
- data/lib/playwright_api/web_socket.rb +10 -1
- data/lib/playwright_api/worker.rb +13 -13
- metadata +16 -7
- data/lib/playwright/input_type.rb +0 -19
- data/lib/playwright/input_types/mouse.rb +0 -4
- data/lib/playwright/input_types/touchscreen.rb +0 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: cbaaa0e61bbc515a26d0f0e6af6ca8c36bbf3db5cc6913a6895f175154ba893b
|
4
|
+
data.tar.gz: cdc467f161030497d4efb94689bef4901c0e15bd24e9cc8be189106f5dfe4493
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 585d3989547fd8e38e1e9503bf8aee20e732b1234bd62783c51b2e77a6061325c9a0c44de0de2b65557726dbebd6dc944ab44f72ffb8cbba69449ff3c0886a59
|
7
|
+
data.tar.gz: e50bd506a34d5fe1d84d6f75d0fbe8bc1128c0f93c3529dc94ba6af7dabf59e564625e6ca0b5a16cf7ad8066ffe91aeeda369599a30c0bb9e5629f54dfe54fd1
|
data/README.md
CHANGED
@@ -1,8 +1,6 @@
|
|
1
1
|
[](https://badge.fury.io/rb/playwright-ruby-client)
|
2
2
|
|
3
|
-
#
|
4
|
-
|
5
|
-
A Ruby client for Playwright driver.
|
3
|
+
# 🎭 Playwright client for Ruby
|
6
4
|
|
7
5
|
Note: Currently, this Gem is just a PoC (Proof of Concept). If you want to develop browser-automation for Chrome with Ruby, consider using [puppeteer-ruby](https://github.com/YusukeIwaki/puppeteer-ruby). The list of the available APIs of playwright-ruby-client is [here](./docs/api_coverage.md)
|
8
6
|
|
@@ -17,6 +15,8 @@ npm install playwright
|
|
17
15
|
|
18
16
|
and then, set `playwright_cli_executable_path: ./node_modules/.bin/playwright` at `Playwright.create`.
|
19
17
|
|
18
|
+
**Prefer playwrighting without Node.js?**
|
19
|
+
|
20
20
|
Instead of npm install, you can also directly download playwright driver from playwright.azureedge.net/builds/. The URL can be easily detected from [here](https://github.com/microsoft/playwright-python/blob/79f6ce0a6a69c480573372706df84af5ef99c4a4/setup.py#L56-L61)
|
21
21
|
|
22
22
|
### Capture a site
|
data/docs/api_coverage.md
CHANGED
@@ -19,30 +19,31 @@
|
|
19
19
|
|
20
20
|
## Response
|
21
21
|
|
22
|
-
*
|
23
|
-
*
|
24
|
-
*
|
25
|
-
*
|
26
|
-
*
|
27
|
-
*
|
28
|
-
*
|
29
|
-
*
|
30
|
-
*
|
31
|
-
*
|
32
|
-
*
|
22
|
+
* body
|
23
|
+
* finished
|
24
|
+
* frame
|
25
|
+
* headers
|
26
|
+
* json
|
27
|
+
* ok
|
28
|
+
* request
|
29
|
+
* status
|
30
|
+
* status_text
|
31
|
+
* text
|
32
|
+
* url
|
33
33
|
|
34
|
-
##
|
34
|
+
## Route
|
35
35
|
|
36
|
-
*
|
37
|
-
*
|
38
|
-
*
|
39
|
-
*
|
36
|
+
* abort
|
37
|
+
* continue
|
38
|
+
* fulfill
|
39
|
+
* request
|
40
40
|
|
41
41
|
## ~~WebSocket~~
|
42
42
|
|
43
43
|
* ~~closed?~~
|
44
44
|
* ~~url~~
|
45
45
|
* ~~expect_event~~
|
46
|
+
* ~~wait_for_event~~
|
46
47
|
|
47
48
|
## Keyboard
|
48
49
|
|
@@ -76,16 +77,14 @@
|
|
76
77
|
|
77
78
|
## ElementHandle
|
78
79
|
|
79
|
-
* query_selector
|
80
|
-
* query_selector_all
|
81
|
-
* eval_on_selector
|
82
|
-
* eval_on_selector_all
|
83
80
|
* bounding_box
|
84
81
|
* check
|
85
82
|
* click
|
86
83
|
* content_frame
|
87
84
|
* dblclick
|
88
85
|
* dispatch_event
|
86
|
+
* eval_on_selector
|
87
|
+
* eval_on_selector_all
|
89
88
|
* fill
|
90
89
|
* focus
|
91
90
|
* get_attribute
|
@@ -100,6 +99,8 @@
|
|
100
99
|
* visible?
|
101
100
|
* owner_frame
|
102
101
|
* press
|
102
|
+
* query_selector
|
103
|
+
* query_selector_all
|
103
104
|
* screenshot
|
104
105
|
* scroll_into_view_if_needed
|
105
106
|
* select_option
|
@@ -116,19 +117,15 @@
|
|
116
117
|
|
117
118
|
* ~~snapshot~~
|
118
119
|
|
119
|
-
##
|
120
|
+
## FileChooser
|
120
121
|
|
121
|
-
*
|
122
|
-
*
|
123
|
-
*
|
124
|
-
*
|
122
|
+
* element
|
123
|
+
* multiple?
|
124
|
+
* page
|
125
|
+
* set_files
|
125
126
|
|
126
127
|
## Frame
|
127
128
|
|
128
|
-
* query_selector
|
129
|
-
* query_selector_all
|
130
|
-
* eval_on_selector
|
131
|
-
* eval_on_selector_all
|
132
129
|
* add_script_tag
|
133
130
|
* add_style_tag
|
134
131
|
* check
|
@@ -137,6 +134,8 @@
|
|
137
134
|
* content
|
138
135
|
* dblclick
|
139
136
|
* dispatch_event
|
137
|
+
* eval_on_selector
|
138
|
+
* eval_on_selector_all
|
140
139
|
* evaluate
|
141
140
|
* evaluate_handle
|
142
141
|
* fill
|
@@ -158,6 +157,8 @@
|
|
158
157
|
* page
|
159
158
|
* parent_frame
|
160
159
|
* press
|
160
|
+
* query_selector
|
161
|
+
* query_selector_all
|
161
162
|
* select_option
|
162
163
|
* set_content
|
163
164
|
* set_input_files
|
@@ -170,7 +171,7 @@
|
|
170
171
|
* wait_for_function
|
171
172
|
* wait_for_load_state
|
172
173
|
* expect_navigation
|
173
|
-
*
|
174
|
+
* wait_for_selector
|
174
175
|
* ~~wait_for_timeout~~
|
175
176
|
|
176
177
|
## ~~Worker~~
|
@@ -181,7 +182,7 @@
|
|
181
182
|
|
182
183
|
## Selectors
|
183
184
|
|
184
|
-
*
|
185
|
+
* register
|
185
186
|
|
186
187
|
## ConsoleMessage
|
187
188
|
|
@@ -190,23 +191,22 @@
|
|
190
191
|
* text
|
191
192
|
* type
|
192
193
|
|
193
|
-
##
|
194
|
+
## Dialog
|
194
195
|
|
195
|
-
*
|
196
|
-
*
|
197
|
-
*
|
198
|
-
*
|
199
|
-
*
|
196
|
+
* accept
|
197
|
+
* default_value
|
198
|
+
* dismiss
|
199
|
+
* message
|
200
|
+
* type
|
200
201
|
|
201
|
-
##
|
202
|
+
## Download
|
202
203
|
|
203
|
-
*
|
204
|
-
*
|
205
|
-
*
|
206
|
-
*
|
207
|
-
*
|
208
|
-
*
|
209
|
-
* ~~url~~
|
204
|
+
* delete
|
205
|
+
* failure
|
206
|
+
* path
|
207
|
+
* save_as
|
208
|
+
* suggested_filename
|
209
|
+
* url
|
210
210
|
|
211
211
|
## ~~Video~~
|
212
212
|
|
@@ -214,106 +214,113 @@
|
|
214
214
|
|
215
215
|
## Page
|
216
216
|
|
217
|
-
*
|
218
|
-
* query_selector_all
|
219
|
-
* eval_on_selector
|
220
|
-
* eval_on_selector_all
|
221
|
-
* ~~add_init_script~~
|
217
|
+
* add_init_script
|
222
218
|
* add_script_tag
|
223
219
|
* add_style_tag
|
224
|
-
*
|
225
|
-
*
|
220
|
+
* bring_to_front
|
221
|
+
* check
|
226
222
|
* click
|
227
223
|
* close
|
228
224
|
* content
|
229
225
|
* context
|
230
226
|
* dblclick
|
231
|
-
*
|
232
|
-
*
|
227
|
+
* dispatch_event
|
228
|
+
* emulate_media
|
229
|
+
* eval_on_selector
|
230
|
+
* eval_on_selector_all
|
233
231
|
* evaluate
|
234
232
|
* evaluate_handle
|
235
|
-
*
|
236
|
-
*
|
233
|
+
* expose_binding
|
234
|
+
* expose_function
|
237
235
|
* fill
|
238
236
|
* focus
|
239
237
|
* frame
|
240
238
|
* frames
|
241
|
-
*
|
242
|
-
*
|
243
|
-
*
|
239
|
+
* get_attribute
|
240
|
+
* go_back
|
241
|
+
* go_forward
|
244
242
|
* goto
|
245
|
-
*
|
246
|
-
*
|
247
|
-
*
|
248
|
-
*
|
243
|
+
* hover
|
244
|
+
* inner_html
|
245
|
+
* inner_text
|
246
|
+
* checked?
|
249
247
|
* closed?
|
250
|
-
*
|
251
|
-
*
|
252
|
-
*
|
253
|
-
*
|
254
|
-
*
|
248
|
+
* disabled?
|
249
|
+
* editable?
|
250
|
+
* enabled?
|
251
|
+
* hidden?
|
252
|
+
* visible?
|
255
253
|
* main_frame
|
256
254
|
* opener
|
257
|
-
* ~~
|
255
|
+
* ~~pause~~
|
256
|
+
* pdf
|
258
257
|
* press
|
258
|
+
* query_selector
|
259
|
+
* query_selector_all
|
259
260
|
* reload
|
260
|
-
*
|
261
|
+
* route
|
261
262
|
* screenshot
|
262
|
-
*
|
263
|
+
* select_option
|
263
264
|
* set_content
|
264
265
|
* set_default_navigation_timeout
|
265
266
|
* set_default_timeout
|
266
|
-
*
|
267
|
-
*
|
267
|
+
* set_extra_http_headers
|
268
|
+
* set_input_files
|
268
269
|
* set_viewport_size
|
269
|
-
*
|
270
|
-
*
|
270
|
+
* tap_point
|
271
|
+
* text_content
|
271
272
|
* title
|
272
273
|
* type
|
273
|
-
*
|
274
|
-
*
|
274
|
+
* uncheck
|
275
|
+
* unroute
|
275
276
|
* url
|
276
277
|
* ~~video~~
|
277
278
|
* viewport_size
|
279
|
+
* expect_console_message
|
280
|
+
* expect_download
|
278
281
|
* expect_event
|
282
|
+
* expect_file_chooser
|
279
283
|
* wait_for_function
|
280
284
|
* wait_for_load_state
|
281
285
|
* expect_navigation
|
286
|
+
* expect_popup
|
282
287
|
* expect_request
|
283
288
|
* expect_response
|
284
|
-
*
|
289
|
+
* wait_for_selector
|
285
290
|
* ~~wait_for_timeout~~
|
291
|
+
* ~~expect_worker~~
|
286
292
|
* ~~workers~~
|
293
|
+
* ~~wait_for_event~~
|
287
294
|
* accessibility
|
288
|
-
* ~~coverage~~
|
289
295
|
* keyboard
|
290
296
|
* mouse
|
291
297
|
* touchscreen
|
292
298
|
|
293
299
|
## BrowserContext
|
294
300
|
|
295
|
-
*
|
296
|
-
*
|
297
|
-
*
|
298
|
-
*
|
299
|
-
*
|
301
|
+
* add_cookies
|
302
|
+
* add_init_script
|
303
|
+
* browser
|
304
|
+
* clear_cookies
|
305
|
+
* clear_permissions
|
300
306
|
* close
|
301
|
-
*
|
302
|
-
*
|
303
|
-
*
|
304
|
-
*
|
307
|
+
* cookies
|
308
|
+
* expose_binding
|
309
|
+
* expose_function
|
310
|
+
* grant_permissions
|
305
311
|
* new_page
|
306
312
|
* pages
|
307
|
-
*
|
308
|
-
*
|
309
|
-
*
|
310
|
-
*
|
311
|
-
*
|
312
|
-
*
|
313
|
-
* ~~set_offline~~
|
313
|
+
* route
|
314
|
+
* set_default_navigation_timeout
|
315
|
+
* set_default_timeout
|
316
|
+
* set_extra_http_headers
|
317
|
+
* set_geolocation
|
318
|
+
* set_offline
|
314
319
|
* ~~storage_state~~
|
315
|
-
*
|
316
|
-
*
|
320
|
+
* unroute
|
321
|
+
* expect_event
|
322
|
+
* expect_page
|
323
|
+
* ~~wait_for_event~~
|
317
324
|
|
318
325
|
## ~~CDPSession~~
|
319
326
|
|
@@ -337,18 +344,69 @@
|
|
337
344
|
|
338
345
|
## BrowserType
|
339
346
|
|
340
|
-
* ~~connect~~
|
341
347
|
* executable_path
|
342
348
|
* launch
|
343
349
|
* ~~launch_persistent_context~~
|
344
|
-
* ~~launch_server~~
|
345
350
|
* name
|
346
351
|
|
347
352
|
## Playwright
|
348
353
|
|
354
|
+
* ~~stop~~
|
349
355
|
* chromium
|
350
356
|
* devices
|
351
|
-
* ~~errors~~
|
352
357
|
* firefox
|
353
|
-
*
|
358
|
+
* selectors
|
354
359
|
* webkit
|
360
|
+
|
361
|
+
## Android
|
362
|
+
|
363
|
+
* devices
|
364
|
+
* ~~set_default_timeout~~
|
365
|
+
|
366
|
+
## AndroidDevice
|
367
|
+
|
368
|
+
* close
|
369
|
+
* ~~drag~~
|
370
|
+
* ~~fill~~
|
371
|
+
* ~~fling~~
|
372
|
+
* info
|
373
|
+
* ~~install_apk~~
|
374
|
+
* launch_browser
|
375
|
+
* ~~long_tap~~
|
376
|
+
* model
|
377
|
+
* ~~open~~
|
378
|
+
* ~~pinch_close~~
|
379
|
+
* ~~pinch_open~~
|
380
|
+
* ~~press~~
|
381
|
+
* ~~push~~
|
382
|
+
* screenshot
|
383
|
+
* ~~scroll~~
|
384
|
+
* serial
|
385
|
+
* ~~set_default_timeout~~
|
386
|
+
* shell
|
387
|
+
* ~~swipe~~
|
388
|
+
* ~~tap_point~~
|
389
|
+
* ~~wait~~
|
390
|
+
* ~~wait_for_event~~
|
391
|
+
* ~~web_view~~
|
392
|
+
* ~~web_views~~
|
393
|
+
* input
|
394
|
+
|
395
|
+
## AndroidInput
|
396
|
+
|
397
|
+
* drag
|
398
|
+
* press
|
399
|
+
* ~~swipe~~
|
400
|
+
* tap_point
|
401
|
+
* type
|
402
|
+
|
403
|
+
## ~~AndroidSocket~~
|
404
|
+
|
405
|
+
* ~~close~~
|
406
|
+
* ~~write~~
|
407
|
+
|
408
|
+
## ~~AndroidWebView~~
|
409
|
+
|
410
|
+
* ~~page~~
|
411
|
+
* ~~pid~~
|
412
|
+
* ~~pkg~~
|
data/lib/playwright.rb
CHANGED
@@ -10,14 +10,17 @@ require 'concurrent'
|
|
10
10
|
require 'playwright/errors'
|
11
11
|
require 'playwright/events'
|
12
12
|
require 'playwright/event_emitter'
|
13
|
+
require 'playwright/event_emitter_proxy'
|
13
14
|
require 'playwright/javascript'
|
14
15
|
require 'playwright/utils'
|
15
16
|
|
17
|
+
require 'playwright/api_implementation'
|
16
18
|
require 'playwright/channel'
|
17
19
|
require 'playwright/channel_owner'
|
20
|
+
require 'playwright/http_headers'
|
18
21
|
require 'playwright/input_files'
|
19
|
-
require 'playwright/input_type'
|
20
22
|
require 'playwright/connection'
|
23
|
+
require 'playwright/route_handler_entry'
|
21
24
|
require 'playwright/select_option_values'
|
22
25
|
require 'playwright/timeout_settings'
|
23
26
|
require 'playwright/transport'
|
@@ -37,7 +40,7 @@ module Playwright
|
|
37
40
|
|
38
41
|
playwright_promise = connection.async_wait_for_object_with_known_name('Playwright')
|
39
42
|
Thread.new { connection.run }
|
40
|
-
playwright = PlaywrightApi.
|
43
|
+
playwright = PlaywrightApi.wrap(playwright_promise.value!)
|
41
44
|
begin
|
42
45
|
block.call(playwright)
|
43
46
|
ensure
|