playwright-ruby-client 1.54.1 → 1.56.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/CONTRIBUTING.md +5 -0
- data/README.md +4 -0
- data/documentation/docs/api/browser_context.md +6 -2
- data/documentation/docs/api/page.md +32 -1
- data/documentation/docs/include/api_coverage.md +3 -0
- data/documentation/package.json +3 -3
- data/documentation/yarn.lock +12372 -8623
- data/lib/playwright/channel_owners/browser_context.rb +3 -15
- data/lib/playwright/channel_owners/page.rb +22 -3
- data/lib/playwright/console_message_impl.rb +3 -2
- data/lib/playwright/locator_assertions_impl.rb +5 -2
- data/lib/playwright/locator_impl.rb +2 -2
- data/lib/playwright/page_assertions_impl.rb +5 -2
- data/lib/playwright/version.rb +2 -2
- data/lib/playwright_api/browser_context.rb +2 -2
- data/lib/playwright_api/locator.rb +3 -3
- data/lib/playwright_api/page.rb +30 -8
- data/lib/playwright_api/worker.rb +4 -4
- data/sig/playwright.rbs +3 -0
- metadata +3 -2
|
@@ -14,7 +14,6 @@ module Playwright
|
|
|
14
14
|
@bindings = {}
|
|
15
15
|
@timeout_settings = TimeoutSettings.new
|
|
16
16
|
@service_workers = Set.new
|
|
17
|
-
@background_pages = Set.new
|
|
18
17
|
@owner_page = nil
|
|
19
18
|
|
|
20
19
|
@tracing = ChannelOwners::Tracing.from(@initializer['tracing'])
|
|
@@ -27,14 +26,11 @@ module Playwright
|
|
|
27
26
|
@channel.once('close', ->(_) { on_close })
|
|
28
27
|
@channel.on('page', ->(params) { on_page(ChannelOwners::Page.from(params['page']) )})
|
|
29
28
|
@channel.on('route', ->(params) { on_route(ChannelOwners::Route.from(params['route'])) })
|
|
30
|
-
@channel.on('backgroundPage', ->(params) {
|
|
31
|
-
on_background_page(ChannelOwners::Page.from(params['page']))
|
|
32
|
-
})
|
|
33
29
|
@channel.on('serviceWorker', ->(params) {
|
|
34
30
|
on_service_worker(ChannelOwners::Worker.from(params['worker']))
|
|
35
31
|
})
|
|
36
32
|
@channel.on('console', ->(params) {
|
|
37
|
-
on_console_message(ConsoleMessageImpl.new(params))
|
|
33
|
+
on_console_message(ConsoleMessageImpl.new(params, ChannelOwners::Page.from_nullable(params['page'])))
|
|
38
34
|
})
|
|
39
35
|
@channel.on('pageError', ->(params) {
|
|
40
36
|
on_page_error(
|
|
@@ -104,11 +100,6 @@ module Playwright
|
|
|
104
100
|
page.send(:emit_popup_event_from_browser_context)
|
|
105
101
|
end
|
|
106
102
|
|
|
107
|
-
private def on_background_page(page)
|
|
108
|
-
@background_pages << page
|
|
109
|
-
emit(Events::BrowserContext::BackgroundPage, page)
|
|
110
|
-
end
|
|
111
|
-
|
|
112
103
|
private def on_route(route)
|
|
113
104
|
route.send(:update_context, self)
|
|
114
105
|
|
|
@@ -216,7 +207,8 @@ module Playwright
|
|
|
216
207
|
end
|
|
217
208
|
|
|
218
209
|
def background_pages
|
|
219
|
-
|
|
210
|
+
puts '[WARNING] BrowserContext#background_pages is deprecated. Returns an empty list.'
|
|
211
|
+
[]
|
|
220
212
|
end
|
|
221
213
|
|
|
222
214
|
def service_workers
|
|
@@ -543,10 +535,6 @@ module Playwright
|
|
|
543
535
|
@pages.delete(page)
|
|
544
536
|
end
|
|
545
537
|
|
|
546
|
-
private def remove_background_page(page)
|
|
547
|
-
@background_pages.delete(page)
|
|
548
|
-
end
|
|
549
|
-
|
|
550
538
|
private def remove_service_worker(worker)
|
|
551
539
|
@service_workers.delete(worker)
|
|
552
540
|
end
|
|
@@ -149,7 +149,6 @@ module Playwright
|
|
|
149
149
|
private def on_close
|
|
150
150
|
@closed = true
|
|
151
151
|
@browser_context.send(:remove_page, self)
|
|
152
|
-
@browser_context.send(:remove_background_page, self)
|
|
153
152
|
if @closed_or_crashed_promise.pending?
|
|
154
153
|
@closed_or_crashed_promise.fulfill(close_error_with_reason)
|
|
155
154
|
end
|
|
@@ -639,6 +638,20 @@ module Playwright
|
|
|
639
638
|
timeout: timeout)
|
|
640
639
|
end
|
|
641
640
|
|
|
641
|
+
def console_messages
|
|
642
|
+
messages = @channel.send_message_to_server('consoleMessages')
|
|
643
|
+
messages.map do |message|
|
|
644
|
+
ConsoleMessageImpl.new(message, self)
|
|
645
|
+
end
|
|
646
|
+
end
|
|
647
|
+
|
|
648
|
+
def page_errors
|
|
649
|
+
errors = @channel.send_message_to_server('pageErrors')
|
|
650
|
+
errors.map do |error|
|
|
651
|
+
Error.parse(error['error'])
|
|
652
|
+
end
|
|
653
|
+
end
|
|
654
|
+
|
|
642
655
|
def locator(
|
|
643
656
|
selector,
|
|
644
657
|
has: nil,
|
|
@@ -826,6 +839,12 @@ module Playwright
|
|
|
826
839
|
@workers.to_a
|
|
827
840
|
end
|
|
828
841
|
|
|
842
|
+
def requests
|
|
843
|
+
@channel.send_message_to_server('requests').map do |req|
|
|
844
|
+
ChannelOwners::Request.from(req)
|
|
845
|
+
end
|
|
846
|
+
end
|
|
847
|
+
|
|
829
848
|
def request
|
|
830
849
|
@browser_context.request
|
|
831
850
|
end
|
|
@@ -882,8 +901,8 @@ module Playwright
|
|
|
882
901
|
@video ||= Video.new(self)
|
|
883
902
|
end
|
|
884
903
|
|
|
885
|
-
def snapshot_for_ai
|
|
886
|
-
@channel.send_message_to_server('snapshotForAI')
|
|
904
|
+
def snapshot_for_ai(timeout: nil)
|
|
905
|
+
@channel.send_message_to_server('snapshotForAI', timeout: @timeout_settings.timeout(timeout))
|
|
887
906
|
end
|
|
888
907
|
|
|
889
908
|
def start_js_coverage(resetOnNavigation: nil, reportAnonymousScripts: nil)
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
module Playwright
|
|
2
2
|
define_api_implementation :ConsoleMessageImpl do
|
|
3
|
-
def initialize(event)
|
|
3
|
+
def initialize(event, page)
|
|
4
4
|
@event = event
|
|
5
|
+
@page = page
|
|
5
6
|
end
|
|
6
7
|
|
|
7
8
|
def page
|
|
8
|
-
@page
|
|
9
|
+
@page
|
|
9
10
|
end
|
|
10
11
|
|
|
11
12
|
def type
|
|
@@ -49,8 +49,11 @@ module Playwright
|
|
|
49
49
|
"\n#{message}"
|
|
50
50
|
end
|
|
51
51
|
|
|
52
|
-
|
|
53
|
-
|
|
52
|
+
if result['errorMessage']
|
|
53
|
+
error_message = "\n#{result['errorMessage']}"
|
|
54
|
+
end
|
|
55
|
+
out = "#{out_message}\nActual value #{actual}#{error_message} #{log}"
|
|
56
|
+
raise AssertionError.new(out)
|
|
54
57
|
else
|
|
55
58
|
true
|
|
56
59
|
end
|
|
@@ -334,8 +334,8 @@ module Playwright
|
|
|
334
334
|
@frame.get_attribute(@selector, name, strict: true, timeout: timeout)
|
|
335
335
|
end
|
|
336
336
|
|
|
337
|
-
def
|
|
338
|
-
@frame.channel.send_message_to_server('
|
|
337
|
+
def resolve_selector
|
|
338
|
+
@frame.channel.send_message_to_server('resolveSelector', { selector: @selector })
|
|
339
339
|
end
|
|
340
340
|
|
|
341
341
|
def hover(
|
|
@@ -50,8 +50,11 @@ module Playwright
|
|
|
50
50
|
"\n#{message}"
|
|
51
51
|
end
|
|
52
52
|
|
|
53
|
-
|
|
54
|
-
|
|
53
|
+
if result['errorMessage']
|
|
54
|
+
error_message = "\n#{result['errorMessage']}"
|
|
55
|
+
end
|
|
56
|
+
out = "#{out_message}\nActual value #{actual}#{error_message} #{log}"
|
|
57
|
+
raise AssertionError.new(out)
|
|
55
58
|
else
|
|
56
59
|
true
|
|
57
60
|
end
|
data/lib/playwright/version.rb
CHANGED
|
@@ -72,9 +72,9 @@ module Playwright
|
|
|
72
72
|
end
|
|
73
73
|
|
|
74
74
|
#
|
|
75
|
-
#
|
|
75
|
+
# Returns an empty list.
|
|
76
76
|
#
|
|
77
|
-
#
|
|
77
|
+
# @deprecated Background pages have been removed from Chromium together with Manifest V2 extensions.
|
|
78
78
|
def background_pages
|
|
79
79
|
wrap_impl(@impl.background_pages)
|
|
80
80
|
end
|
|
@@ -61,7 +61,7 @@ module Playwright
|
|
|
61
61
|
# The following example finds a button with a specific title.
|
|
62
62
|
#
|
|
63
63
|
# ```python sync
|
|
64
|
-
# button = page.get_by_role("button").and_(page.
|
|
64
|
+
# button = page.get_by_role("button").and_(page.get_by_title("Subscribe"))
|
|
65
65
|
# ```
|
|
66
66
|
def and(locator)
|
|
67
67
|
wrap_impl(@impl.and(unwrap_impl(locator)))
|
|
@@ -1273,8 +1273,8 @@ module Playwright
|
|
|
1273
1273
|
end
|
|
1274
1274
|
|
|
1275
1275
|
# @nodoc
|
|
1276
|
-
def
|
|
1277
|
-
wrap_impl(@impl.
|
|
1276
|
+
def resolve_selector
|
|
1277
|
+
wrap_impl(@impl.resolve_selector)
|
|
1278
1278
|
end
|
|
1279
1279
|
|
|
1280
1280
|
# @nodoc
|
data/lib/playwright_api/page.rb
CHANGED
|
@@ -922,6 +922,18 @@ module Playwright
|
|
|
922
922
|
wrap_impl(@impl.visible?(unwrap_impl(selector), strict: unwrap_impl(strict), timeout: unwrap_impl(timeout)))
|
|
923
923
|
end
|
|
924
924
|
|
|
925
|
+
#
|
|
926
|
+
# Returns up to (currently) 200 last console messages from this page. See [`event: Page.console`] for more details.
|
|
927
|
+
def console_messages
|
|
928
|
+
wrap_impl(@impl.console_messages)
|
|
929
|
+
end
|
|
930
|
+
|
|
931
|
+
#
|
|
932
|
+
# Returns up to (currently) 200 last page errors from this page. See [`event: Page.pageError`] for more details.
|
|
933
|
+
def page_errors
|
|
934
|
+
wrap_impl(@impl.page_errors)
|
|
935
|
+
end
|
|
936
|
+
|
|
925
937
|
#
|
|
926
938
|
# The method returns an element locator that can be used to perform actions on this page / frame.
|
|
927
939
|
# Locator is resolved to the element immediately before performing an action, so a series of actions on the same locator can in fact be performed on different DOM elements. That would happen if the DOM structure between those actions has changed.
|
|
@@ -949,7 +961,7 @@ module Playwright
|
|
|
949
961
|
end
|
|
950
962
|
|
|
951
963
|
#
|
|
952
|
-
# Pauses script execution. Playwright will stop executing the script and wait for the user to either press 'Resume'
|
|
964
|
+
# Pauses script execution. Playwright will stop executing the script and wait for the user to either press the 'Resume'
|
|
953
965
|
# button in the page overlay or to call `playwright.resume()` in the DevTools console.
|
|
954
966
|
#
|
|
955
967
|
# User can inspect selectors or perform manual steps while paused. Resume will continue running the original script from
|
|
@@ -1085,6 +1097,16 @@ module Playwright
|
|
|
1085
1097
|
wrap_impl(@impl.query_selector_all(unwrap_impl(selector)))
|
|
1086
1098
|
end
|
|
1087
1099
|
|
|
1100
|
+
#
|
|
1101
|
+
# Returns up to (currently) 100 last network request from this page. See [`event: Page.request`] for more details.
|
|
1102
|
+
#
|
|
1103
|
+
# Returned requests should be accessed immediately, otherwise they might be collected to prevent unbounded memory growth as new requests come in. Once collected, retrieving most information about the request is impossible.
|
|
1104
|
+
#
|
|
1105
|
+
# Note that requests reported through the [`event: Page.request`] request are not collected, so there is a trade off between efficient memory usage with [`method: Page.requests`] and the amount of available information reported through [`event: Page.request`].
|
|
1106
|
+
def requests
|
|
1107
|
+
wrap_impl(@impl.requests)
|
|
1108
|
+
end
|
|
1109
|
+
|
|
1088
1110
|
#
|
|
1089
1111
|
# When testing a web page, sometimes unexpected overlays like a "Sign up" dialog appear and block actions you want to automate, e.g. clicking a button. These overlays don't always show up in the same way or at the same time, making them tricky to handle in automated tests.
|
|
1090
1112
|
#
|
|
@@ -1799,8 +1821,8 @@ module Playwright
|
|
|
1799
1821
|
end
|
|
1800
1822
|
|
|
1801
1823
|
# @nodoc
|
|
1802
|
-
def snapshot_for_ai
|
|
1803
|
-
wrap_impl(@impl.snapshot_for_ai)
|
|
1824
|
+
def snapshot_for_ai(timeout: nil)
|
|
1825
|
+
wrap_impl(@impl.snapshot_for_ai(timeout: unwrap_impl(timeout)))
|
|
1804
1826
|
end
|
|
1805
1827
|
|
|
1806
1828
|
# @nodoc
|
|
@@ -1813,11 +1835,6 @@ module Playwright
|
|
|
1813
1835
|
wrap_impl(@impl.stop_js_coverage)
|
|
1814
1836
|
end
|
|
1815
1837
|
|
|
1816
|
-
# @nodoc
|
|
1817
|
-
def start_css_coverage(resetOnNavigation: nil, reportAnonymousScripts: nil)
|
|
1818
|
-
wrap_impl(@impl.start_css_coverage(resetOnNavigation: unwrap_impl(resetOnNavigation), reportAnonymousScripts: unwrap_impl(reportAnonymousScripts)))
|
|
1819
|
-
end
|
|
1820
|
-
|
|
1821
1838
|
# @nodoc
|
|
1822
1839
|
def stop_css_coverage
|
|
1823
1840
|
wrap_impl(@impl.stop_css_coverage)
|
|
@@ -1828,6 +1845,11 @@ module Playwright
|
|
|
1828
1845
|
wrap_impl(@impl.owned_context=(unwrap_impl(req)))
|
|
1829
1846
|
end
|
|
1830
1847
|
|
|
1848
|
+
# @nodoc
|
|
1849
|
+
def start_css_coverage(resetOnNavigation: nil, reportAnonymousScripts: nil)
|
|
1850
|
+
wrap_impl(@impl.start_css_coverage(resetOnNavigation: unwrap_impl(resetOnNavigation), reportAnonymousScripts: unwrap_impl(reportAnonymousScripts)))
|
|
1851
|
+
end
|
|
1852
|
+
|
|
1831
1853
|
# -- inherited from EventEmitter --
|
|
1832
1854
|
# @nodoc
|
|
1833
1855
|
def once(event, callback)
|
|
@@ -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
|
@@ -311,6 +311,8 @@ module Playwright
|
|
|
311
311
|
def enabled?: (String selector, ?strict: bool, ?timeout: Float) -> bool
|
|
312
312
|
def hidden?: (String selector, ?strict: bool, ?timeout: Float) -> bool
|
|
313
313
|
def visible?: (String selector, ?strict: bool, ?timeout: Float) -> bool
|
|
314
|
+
def console_messages: -> Array[untyped]
|
|
315
|
+
def page_errors: -> Array[untyped]
|
|
314
316
|
def locator: (String selector, ?has: Locator, ?hasNot: Locator, ?hasNotText: (String | Regexp), ?hasText: (String | Regexp)) -> Locator
|
|
315
317
|
def main_frame: -> Frame
|
|
316
318
|
def opener: -> (nil | Page)
|
|
@@ -319,6 +321,7 @@ module Playwright
|
|
|
319
321
|
def press: (String selector, String key, ?delay: Float, ?noWaitAfter: bool, ?strict: bool, ?timeout: Float) -> void
|
|
320
322
|
def query_selector: (String selector, ?strict: bool) -> (nil | ElementHandle)
|
|
321
323
|
def query_selector_all: (String selector) -> Array[untyped]
|
|
324
|
+
def requests: -> Array[untyped]
|
|
322
325
|
def reload: (?timeout: Float, ?waitUntil: ("load" | "domcontentloaded" | "networkidle" | "commit")) -> (nil | Response)
|
|
323
326
|
def route: ((String | Regexp | function) url, function handler, ?times: Integer) -> void
|
|
324
327
|
def route_from_har: ((String | File) har, ?notFound: ("abort" | "fallback"), ?update: bool, ?updateContent: ("embed" | "attach"), ?updateMode: ("full" | "minimal"), ?url: (String | Regexp)) -> void
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
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.56.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- YusukeIwaki
|
|
@@ -199,6 +199,7 @@ extra_rdoc_files: []
|
|
|
199
199
|
files:
|
|
200
200
|
- ".rspec"
|
|
201
201
|
- CODE_OF_CONDUCT.md
|
|
202
|
+
- CONTRIBUTING.md
|
|
202
203
|
- Gemfile
|
|
203
204
|
- LICENSE.txt
|
|
204
205
|
- README.md
|
|
@@ -409,5 +410,5 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
409
410
|
requirements: []
|
|
410
411
|
rubygems_version: 3.6.9
|
|
411
412
|
specification_version: 4
|
|
412
|
-
summary: The Ruby binding of playwright driver 1.
|
|
413
|
+
summary: The Ruby binding of playwright driver 1.56.1
|
|
413
414
|
test_files: []
|