playwright-ruby-client 1.37.1 → 1.39.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +13 -7
- data/documentation/docs/api/browser.md +13 -9
- data/documentation/docs/api/browser_context.md +51 -32
- data/documentation/docs/api/browser_type.md +12 -7
- data/documentation/docs/api/dialog.md +18 -15
- data/documentation/docs/api/download.md +17 -7
- data/documentation/docs/api/element_handle.md +7 -19
- data/documentation/docs/api/frame.md +55 -30
- data/documentation/docs/api/keyboard.md +4 -0
- data/documentation/docs/api/locator.md +57 -16
- data/documentation/docs/api/page.md +102 -54
- data/documentation/docs/api/playwright.md +23 -20
- data/documentation/docs/api/request.md +17 -0
- data/documentation/docs/api/selectors.md +34 -29
- data/documentation/docs/include/api_coverage.md +1 -0
- data/lib/playwright/channel.rb +8 -0
- data/lib/playwright/channel_owner.rb +7 -2
- data/lib/playwright/channel_owners/browser_context.rb +16 -1
- data/lib/playwright/channel_owners/local_utils.rb +27 -0
- data/lib/playwright/channel_owners/page.rb +2 -0
- data/lib/playwright/channel_owners/playwright.rb +1 -24
- data/lib/playwright/channel_owners/request.rb +17 -1
- data/lib/playwright/channel_owners/route.rb +5 -1
- data/lib/playwright/connection.rb +1 -1
- data/lib/playwright/console_message_impl.rb +29 -0
- data/lib/playwright/errors.rb +13 -2
- data/lib/playwright/events.rb +1 -0
- data/lib/playwright/javascript/value_parser.rb +8 -0
- data/lib/playwright/javascript/value_serializer.rb +10 -4
- data/lib/playwright/locator_impl.rb +4 -0
- data/lib/playwright/utils.rb +4 -0
- data/lib/playwright/version.rb +2 -2
- data/lib/playwright_api/browser.rb +2 -2
- data/lib/playwright_api/browser_context.rb +4 -4
- data/lib/playwright_api/browser_type.rb +2 -2
- data/lib/playwright_api/console_message.rb +0 -22
- data/lib/playwright_api/dialog.rb +2 -2
- data/lib/playwright_api/download.rb +12 -3
- data/lib/playwright_api/element_handle.rb +2 -15
- data/lib/playwright_api/frame.rb +8 -13
- data/lib/playwright_api/keyboard.rb +4 -0
- data/lib/playwright_api/locator.rb +52 -16
- data/lib/playwright_api/page.rb +24 -29
- data/lib/playwright_api/playwright.rb +4 -4
- data/lib/playwright_api/request.rb +17 -0
- data/lib/playwright_api/selectors.rb +2 -2
- data/lib/playwright_api/worker.rb +4 -4
- data/sig/playwright.rbs +1 -0
- metadata +4 -4
- data/lib/playwright/channel_owners/console_message.rb +0 -25
data/lib/playwright_api/page.rb
CHANGED
@@ -8,9 +8,9 @@ module Playwright
|
|
8
8
|
# This example creates a page, navigates it to a URL, and then saves a screenshot:
|
9
9
|
#
|
10
10
|
# ```python sync
|
11
|
-
# from playwright.sync_api import sync_playwright
|
11
|
+
# from playwright.sync_api import sync_playwright, Playwright
|
12
12
|
#
|
13
|
-
# def run(playwright):
|
13
|
+
# def run(playwright: Playwright):
|
14
14
|
# webkit = playwright.webkit
|
15
15
|
# browser = webkit.launch()
|
16
16
|
# context = browser.new_context()
|
@@ -438,9 +438,9 @@ module Playwright
|
|
438
438
|
# An example of exposing page URL to all frames in a page:
|
439
439
|
#
|
440
440
|
# ```python sync
|
441
|
-
# from playwright.sync_api import sync_playwright
|
441
|
+
# from playwright.sync_api import sync_playwright, Playwright
|
442
442
|
#
|
443
|
-
# def run(playwright):
|
443
|
+
# def run(playwright: Playwright):
|
444
444
|
# webkit = playwright.webkit
|
445
445
|
# browser = webkit.launch(headless=false)
|
446
446
|
# context = browser.new_context()
|
@@ -496,7 +496,7 @@ module Playwright
|
|
496
496
|
#
|
497
497
|
# ```python sync
|
498
498
|
# import hashlib
|
499
|
-
# from playwright.sync_api import sync_playwright
|
499
|
+
# from playwright.sync_api import sync_playwright, Playwright
|
500
500
|
#
|
501
501
|
# def sha256(text):
|
502
502
|
# m = hashlib.sha256()
|
@@ -504,7 +504,7 @@ module Playwright
|
|
504
504
|
# return m.hexdigest()
|
505
505
|
#
|
506
506
|
#
|
507
|
-
# def run(playwright):
|
507
|
+
# def run(playwright: Playwright):
|
508
508
|
# webkit = playwright.webkit
|
509
509
|
# browser = webkit.launch(headless=False)
|
510
510
|
# page = browser.new_page()
|
@@ -532,7 +532,7 @@ module Playwright
|
|
532
532
|
#
|
533
533
|
# If the target element is not an `<input>`, `<textarea>` or `[contenteditable]` element, this method throws an error. However, if the element is inside the `<label>` element that has an associated [control](https://developer.mozilla.org/en-US/docs/Web/API/HTMLLabelElement/control), the control will be filled instead.
|
534
534
|
#
|
535
|
-
# To send fine-grained keyboard events, use [`method:
|
535
|
+
# To send fine-grained keyboard events, use [`method: Locator.pressSequentially`].
|
536
536
|
def fill(
|
537
537
|
selector,
|
538
538
|
value,
|
@@ -1176,7 +1176,7 @@ module Playwright
|
|
1176
1176
|
# **Usage**
|
1177
1177
|
#
|
1178
1178
|
# ```python sync
|
1179
|
-
# #
|
1179
|
+
# # Single selection matching the value or label
|
1180
1180
|
# page.select_option("select#colors", "blue")
|
1181
1181
|
# # single selection matching both the label
|
1182
1182
|
# page.select_option("select#colors", label="blue")
|
@@ -1340,11 +1340,6 @@ module Playwright
|
|
1340
1340
|
# To press a special key, like `Control` or `ArrowDown`, use [`method: Keyboard.press`].
|
1341
1341
|
#
|
1342
1342
|
# **Usage**
|
1343
|
-
#
|
1344
|
-
# ```python sync
|
1345
|
-
# page.type("#mytextarea", "hello") # types instantly
|
1346
|
-
# page.type("#mytextarea", "world", delay=100) # types slower, like a user
|
1347
|
-
# ```
|
1348
1343
|
def type(
|
1349
1344
|
selector,
|
1350
1345
|
text,
|
@@ -1446,9 +1441,9 @@ module Playwright
|
|
1446
1441
|
# The [`method: Page.waitForFunction`] can be used to observe viewport size change:
|
1447
1442
|
#
|
1448
1443
|
# ```python sync
|
1449
|
-
# from playwright.sync_api import sync_playwright
|
1444
|
+
# from playwright.sync_api import sync_playwright, Playwright
|
1450
1445
|
#
|
1451
|
-
# def run(playwright):
|
1446
|
+
# def run(playwright: Playwright):
|
1452
1447
|
# webkit = playwright.webkit
|
1453
1448
|
# browser = webkit.launch()
|
1454
1449
|
# page = browser.new_page()
|
@@ -1592,9 +1587,9 @@ module Playwright
|
|
1592
1587
|
# This method works across navigations:
|
1593
1588
|
#
|
1594
1589
|
# ```python sync
|
1595
|
-
# from playwright.sync_api import sync_playwright
|
1590
|
+
# from playwright.sync_api import sync_playwright, Playwright
|
1596
1591
|
#
|
1597
|
-
# def run(playwright):
|
1592
|
+
# def run(playwright: Playwright):
|
1598
1593
|
# chromium = playwright.chromium
|
1599
1594
|
# browser = chromium.launch()
|
1600
1595
|
# page = browser.new_page()
|
@@ -1676,33 +1671,33 @@ module Playwright
|
|
1676
1671
|
end
|
1677
1672
|
|
1678
1673
|
# @nodoc
|
1679
|
-
def
|
1680
|
-
wrap_impl(@impl.
|
1674
|
+
def stop_css_coverage
|
1675
|
+
wrap_impl(@impl.stop_css_coverage)
|
1681
1676
|
end
|
1682
1677
|
|
1683
1678
|
# @nodoc
|
1684
|
-
def
|
1685
|
-
wrap_impl(@impl.
|
1679
|
+
def stop_js_coverage
|
1680
|
+
wrap_impl(@impl.stop_js_coverage)
|
1686
1681
|
end
|
1687
1682
|
|
1688
1683
|
# @nodoc
|
1689
|
-
def
|
1690
|
-
wrap_impl(@impl.
|
1684
|
+
def start_css_coverage(resetOnNavigation: nil, reportAnonymousScripts: nil)
|
1685
|
+
wrap_impl(@impl.start_css_coverage(resetOnNavigation: unwrap_impl(resetOnNavigation), reportAnonymousScripts: unwrap_impl(reportAnonymousScripts)))
|
1691
1686
|
end
|
1692
1687
|
|
1693
1688
|
# @nodoc
|
1694
|
-
def
|
1695
|
-
wrap_impl(@impl.
|
1689
|
+
def owned_context=(req)
|
1690
|
+
wrap_impl(@impl.owned_context=(unwrap_impl(req)))
|
1696
1691
|
end
|
1697
1692
|
|
1698
1693
|
# @nodoc
|
1699
|
-
def
|
1700
|
-
wrap_impl(@impl.
|
1694
|
+
def guid
|
1695
|
+
wrap_impl(@impl.guid)
|
1701
1696
|
end
|
1702
1697
|
|
1703
1698
|
# @nodoc
|
1704
|
-
def
|
1705
|
-
wrap_impl(@impl.
|
1699
|
+
def start_js_coverage(resetOnNavigation: nil, reportAnonymousScripts: nil)
|
1700
|
+
wrap_impl(@impl.start_js_coverage(resetOnNavigation: unwrap_impl(resetOnNavigation), reportAnonymousScripts: unwrap_impl(reportAnonymousScripts)))
|
1706
1701
|
end
|
1707
1702
|
|
1708
1703
|
# -- inherited from EventEmitter --
|
@@ -4,9 +4,9 @@ module Playwright
|
|
4
4
|
# to drive automation:
|
5
5
|
#
|
6
6
|
# ```python sync
|
7
|
-
# from playwright.sync_api import sync_playwright
|
7
|
+
# from playwright.sync_api import sync_playwright, Playwright
|
8
8
|
#
|
9
|
-
# def run(playwright):
|
9
|
+
# def run(playwright: Playwright):
|
10
10
|
# chromium = playwright.chromium # or "firefox" or "webkit".
|
11
11
|
# browser = chromium.launch()
|
12
12
|
# page = browser.new_page()
|
@@ -29,9 +29,9 @@ module Playwright
|
|
29
29
|
# Returns a dictionary of devices to be used with [`method: Browser.newContext`] or [`method: Browser.newPage`].
|
30
30
|
#
|
31
31
|
# ```python sync
|
32
|
-
# from playwright.sync_api import sync_playwright
|
32
|
+
# from playwright.sync_api import sync_playwright, Playwright
|
33
33
|
#
|
34
|
-
# def run(playwright):
|
34
|
+
# def run(playwright: Playwright):
|
35
35
|
# webkit = playwright.webkit
|
36
36
|
# iphone = playwright.devices["iPhone 6"]
|
37
37
|
# browser = webkit.launch()
|
@@ -37,6 +37,20 @@ module Playwright
|
|
37
37
|
|
38
38
|
#
|
39
39
|
# Returns the `Frame` that initiated this request.
|
40
|
+
#
|
41
|
+
# **Usage**
|
42
|
+
#
|
43
|
+
# ```py
|
44
|
+
# frame_url = request.frame.url
|
45
|
+
# ```
|
46
|
+
#
|
47
|
+
# **Details**
|
48
|
+
#
|
49
|
+
# Note that in some cases the frame is not available, and this method will throw.
|
50
|
+
# - When request originates in the Service Worker. You can use `request.serviceWorker()` to check that.
|
51
|
+
# - When navigation request is issued before the corresponding frame is created. You can use [`method: Request.isNavigationRequest`] to check that.
|
52
|
+
#
|
53
|
+
# Here is an example that handles all the cases:
|
40
54
|
def frame
|
41
55
|
wrap_impl(@impl.frame)
|
42
56
|
end
|
@@ -64,6 +78,9 @@ module Playwright
|
|
64
78
|
|
65
79
|
#
|
66
80
|
# Whether this request is driving frame's navigation.
|
81
|
+
#
|
82
|
+
# Some navigation requests are issued before the corresponding frame is created, and therefore
|
83
|
+
# do not have [`method: Request.frame`] available.
|
67
84
|
def navigation_request?
|
68
85
|
wrap_impl(@impl.navigation_request?)
|
69
86
|
end
|
@@ -12,9 +12,9 @@ module Playwright
|
|
12
12
|
# An example of registering selector engine that queries elements based on a tag name:
|
13
13
|
#
|
14
14
|
# ```python sync
|
15
|
-
# from playwright.sync_api import sync_playwright
|
15
|
+
# from playwright.sync_api import sync_playwright, Playwright
|
16
16
|
#
|
17
|
-
# def run(playwright):
|
17
|
+
# def run(playwright: Playwright):
|
18
18
|
# tag_selector = """
|
19
19
|
# {
|
20
20
|
# // Returns the first element matching given selector in the root's subtree.
|
@@ -47,13 +47,13 @@ module Playwright
|
|
47
47
|
end
|
48
48
|
|
49
49
|
# @nodoc
|
50
|
-
def
|
51
|
-
wrap_impl(@impl.
|
50
|
+
def context=(req)
|
51
|
+
wrap_impl(@impl.context=(unwrap_impl(req)))
|
52
52
|
end
|
53
53
|
|
54
54
|
# @nodoc
|
55
|
-
def
|
56
|
-
wrap_impl(@impl.
|
55
|
+
def page=(req)
|
56
|
+
wrap_impl(@impl.page=(unwrap_impl(req)))
|
57
57
|
end
|
58
58
|
|
59
59
|
# -- inherited from EventEmitter --
|
data/sig/playwright.rbs
CHANGED
@@ -483,6 +483,7 @@ module Playwright
|
|
483
483
|
def or: (Locator locator) -> Locator
|
484
484
|
def page: -> Page
|
485
485
|
def press: (String key, ?delay: Float, ?noWaitAfter: bool, ?timeout: Float) -> void
|
486
|
+
def press_sequentially: (String text, ?delay: Float, ?noWaitAfter: bool, ?timeout: Float) -> void
|
486
487
|
def screenshot: (?animations: ("disabled" | "allow"), ?caret: ("hide" | "initial"), ?mask: Array[untyped], ?maskColor: String, ?omitBackground: bool, ?path: (String | File), ?quality: Integer, ?scale: ("css" | "device"), ?timeout: Float, ?type: ("png" | "jpeg")) -> String
|
487
488
|
def scroll_into_view_if_needed: (?timeout: Float) -> void
|
488
489
|
def select_option: (?element: (ElementHandle | Array[untyped]), ?index: (Integer | Array[untyped]), ?value: (String | Array[untyped]), ?label: (String | Array[untyped]), ?force: bool, ?noWaitAfter: bool, ?timeout: Float) -> Array[untyped]
|
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.39.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-
|
11
|
+
date: 2023-10-28 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: concurrent-ruby
|
@@ -289,7 +289,6 @@ files:
|
|
289
289
|
- lib/playwright/channel_owners/browser_context.rb
|
290
290
|
- lib/playwright/channel_owners/browser_type.rb
|
291
291
|
- lib/playwright/channel_owners/cdp_session.rb
|
292
|
-
- lib/playwright/channel_owners/console_message.rb
|
293
292
|
- lib/playwright/channel_owners/dialog.rb
|
294
293
|
- lib/playwright/channel_owners/electron.rb
|
295
294
|
- lib/playwright/channel_owners/element_handle.rb
|
@@ -309,6 +308,7 @@ files:
|
|
309
308
|
- lib/playwright/channel_owners/worker.rb
|
310
309
|
- lib/playwright/channel_owners/writable_stream.rb
|
311
310
|
- lib/playwright/connection.rb
|
311
|
+
- lib/playwright/console_message_impl.rb
|
312
312
|
- lib/playwright/download_impl.rb
|
313
313
|
- lib/playwright/errors.rb
|
314
314
|
- lib/playwright/event_emitter.rb
|
@@ -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.
|
404
|
+
summary: The Ruby binding of playwright driver 1.39.0
|
405
405
|
test_files: []
|
@@ -1,25 +0,0 @@
|
|
1
|
-
module Playwright
|
2
|
-
define_channel_owner :ConsoleMessage do
|
3
|
-
def page
|
4
|
-
@page ||= ChannelOwners::Page.from_nullable(@initializer['page'])
|
5
|
-
end
|
6
|
-
|
7
|
-
def type
|
8
|
-
@initializer['type']
|
9
|
-
end
|
10
|
-
|
11
|
-
def text
|
12
|
-
@initializer['text']
|
13
|
-
end
|
14
|
-
|
15
|
-
def args
|
16
|
-
@initializer['args']&.map do |arg|
|
17
|
-
ChannelOwner.from(arg)
|
18
|
-
end
|
19
|
-
end
|
20
|
-
|
21
|
-
def location
|
22
|
-
@initialize['location']
|
23
|
-
end
|
24
|
-
end
|
25
|
-
end
|