playwright-ruby-client 0.0.8 → 1.58.1.alpha1
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/AGENTS.md +4 -0
- data/CLAUDE/api_generation.md +28 -0
- data/CLAUDE/ci_expectations.md +23 -0
- data/CLAUDE/gem_release_flow.md +39 -0
- data/CLAUDE/past_upgrade_pr_patterns.md +42 -0
- data/CLAUDE/playwright_upgrade_workflow.md +35 -0
- data/CLAUDE/rspec_debugging.md +30 -0
- data/CLAUDE/unimplemented_examples.md +18 -0
- data/CLAUDE.md +32 -0
- data/CONTRIBUTING.md +5 -0
- data/README.md +60 -16
- data/documentation/README.md +33 -0
- data/documentation/babel.config.js +3 -0
- data/documentation/docs/api/api_request.md +7 -0
- data/documentation/docs/api/api_request_context.md +298 -0
- data/documentation/docs/api/api_response.md +114 -0
- data/documentation/docs/api/browser.md +237 -0
- data/documentation/docs/api/browser_context.md +503 -0
- data/documentation/docs/api/browser_type.md +184 -0
- data/documentation/docs/api/cdp_session.md +44 -0
- data/documentation/docs/api/clock.md +154 -0
- data/documentation/docs/api/console_message.md +85 -0
- data/documentation/docs/api/dialog.md +84 -0
- data/documentation/docs/api/download.md +111 -0
- data/documentation/docs/api/element_handle.md +694 -0
- data/documentation/docs/api/experimental/_category_.yml +3 -0
- data/documentation/docs/api/experimental/android.md +42 -0
- data/documentation/docs/api/experimental/android_device.md +109 -0
- data/documentation/docs/api/experimental/android_input.md +43 -0
- data/documentation/docs/api/experimental/android_socket.md +7 -0
- data/documentation/docs/api/experimental/android_web_view.md +7 -0
- data/documentation/docs/api/file_chooser.md +53 -0
- data/documentation/docs/api/frame.md +1218 -0
- data/documentation/docs/api/frame_locator.md +348 -0
- data/documentation/docs/api/js_handle.md +121 -0
- data/documentation/docs/api/keyboard.md +170 -0
- data/documentation/docs/api/locator.md +1495 -0
- data/documentation/docs/api/locator_assertions.md +827 -0
- data/documentation/docs/api/mouse.md +86 -0
- data/documentation/docs/api/page.md +1946 -0
- data/documentation/docs/api/page_assertions.md +65 -0
- data/documentation/docs/api/playwright.md +66 -0
- data/documentation/docs/api/request.md +255 -0
- data/documentation/docs/api/response.md +176 -0
- data/documentation/docs/api/route.md +205 -0
- data/documentation/docs/api/selectors.md +63 -0
- data/documentation/docs/api/touchscreen.md +22 -0
- data/documentation/docs/api/tracing.md +129 -0
- data/documentation/docs/api/web_socket.md +51 -0
- data/documentation/docs/api/worker.md +83 -0
- data/documentation/docs/article/api_coverage.mdx +11 -0
- data/documentation/docs/article/getting_started.md +161 -0
- data/documentation/docs/article/guides/_category_.yml +3 -0
- data/documentation/docs/article/guides/download_playwright_driver.md +55 -0
- data/documentation/docs/article/guides/inspector.md +31 -0
- data/documentation/docs/article/guides/launch_browser.md +121 -0
- data/documentation/docs/article/guides/playwright_on_alpine_linux.md +112 -0
- data/documentation/docs/article/guides/rails_integration.md +278 -0
- data/documentation/docs/article/guides/rails_integration_with_null_driver.md +145 -0
- data/documentation/docs/article/guides/recording_video.md +79 -0
- data/documentation/docs/article/guides/rspec_integration.md +59 -0
- data/documentation/docs/article/guides/semi_automation.md +71 -0
- data/documentation/docs/article/guides/use_storage_state.md +78 -0
- data/documentation/docs/include/api_coverage.md +671 -0
- data/documentation/docusaurus.config.js +114 -0
- data/documentation/package.json +39 -0
- data/documentation/sidebars.js +15 -0
- data/documentation/src/components/HomepageFeatures.js +61 -0
- data/documentation/src/components/HomepageFeatures.module.css +13 -0
- data/documentation/src/css/custom.css +44 -0
- data/documentation/src/pages/index.js +49 -0
- data/documentation/src/pages/index.module.css +41 -0
- data/documentation/src/pages/markdown-page.md +7 -0
- data/documentation/static/.nojekyll +0 -0
- data/documentation/static/img/playwright-logo.svg +9 -0
- data/documentation/static/img/playwright-ruby-client.png +0 -0
- data/documentation/static/img/undraw_dropdown_menu.svg +1 -0
- data/documentation/static/img/undraw_web_development.svg +1 -0
- data/documentation/static/img/undraw_windows.svg +1 -0
- data/documentation/yarn.lock +9005 -0
- 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/api_response_impl.rb +77 -0
- data/lib/playwright/channel.rb +62 -1
- data/lib/playwright/channel_owner.rb +70 -7
- data/lib/playwright/channel_owners/android.rb +16 -3
- data/lib/playwright/channel_owners/android_device.rb +22 -66
- data/lib/playwright/channel_owners/api_request_context.rb +247 -0
- data/lib/playwright/channel_owners/artifact.rb +40 -0
- data/lib/playwright/channel_owners/binding_call.rb +70 -0
- data/lib/playwright/channel_owners/browser.rb +114 -22
- data/lib/playwright/channel_owners/browser_context.rb +589 -15
- data/lib/playwright/channel_owners/browser_type.rb +90 -1
- data/lib/playwright/channel_owners/cdp_session.rb +19 -0
- data/lib/playwright/channel_owners/dialog.rb +32 -0
- data/lib/playwright/channel_owners/element_handle.rb +107 -43
- data/lib/playwright/channel_owners/fetch_request.rb +8 -0
- data/lib/playwright/channel_owners/frame.rb +334 -104
- data/lib/playwright/channel_owners/js_handle.rb +9 -13
- data/lib/playwright/channel_owners/local_utils.rb +82 -0
- data/lib/playwright/channel_owners/page.rb +778 -95
- data/lib/playwright/channel_owners/playwright.rb +25 -30
- data/lib/playwright/channel_owners/request.rb +120 -18
- data/lib/playwright/channel_owners/response.rb +113 -0
- data/lib/playwright/channel_owners/route.rb +181 -0
- data/lib/playwright/channel_owners/stream.rb +30 -0
- data/lib/playwright/channel_owners/tracing.rb +117 -0
- data/lib/playwright/channel_owners/web_socket.rb +96 -0
- data/lib/playwright/channel_owners/worker.rb +46 -0
- data/lib/playwright/channel_owners/writable_stream.rb +14 -0
- data/lib/playwright/clock_impl.rb +67 -0
- data/lib/playwright/connection.rb +111 -63
- data/lib/playwright/console_message_impl.rb +29 -0
- data/lib/playwright/download_impl.rb +32 -0
- data/lib/playwright/errors.rb +42 -5
- data/lib/playwright/event_emitter.rb +17 -3
- data/lib/playwright/event_emitter_proxy.rb +49 -0
- data/lib/playwright/events.rb +10 -5
- data/lib/playwright/file_chooser_impl.rb +24 -0
- data/lib/playwright/frame_locator_impl.rb +66 -0
- data/lib/playwright/har_router.rb +89 -0
- data/lib/playwright/http_headers.rb +14 -0
- data/lib/playwright/input_files.rb +102 -15
- data/lib/playwright/javascript/expression.rb +7 -11
- data/lib/playwright/javascript/regex.rb +23 -0
- data/lib/playwright/javascript/source_url.rb +16 -0
- data/lib/playwright/javascript/value_parser.rb +108 -19
- data/lib/playwright/javascript/value_serializer.rb +47 -8
- data/lib/playwright/javascript/visitor_info.rb +26 -0
- data/lib/playwright/javascript.rb +2 -10
- data/lib/playwright/{input_types/keyboard.rb → keyboard_impl.rb} +6 -2
- data/lib/playwright/locator_assertions_impl.rb +571 -0
- data/lib/playwright/locator_impl.rb +544 -0
- data/lib/playwright/locator_utils.rb +136 -0
- data/lib/playwright/mouse_impl.rb +57 -0
- data/lib/playwright/page_assertions_impl.rb +154 -0
- data/lib/playwright/playwright_api.rb +102 -30
- data/lib/playwright/raw_headers.rb +61 -0
- data/lib/playwright/route_handler.rb +78 -0
- data/lib/playwright/select_option_values.rb +34 -13
- data/lib/playwright/selectors_impl.rb +45 -0
- data/lib/playwright/test.rb +102 -0
- data/lib/playwright/timeout_settings.rb +9 -4
- data/lib/playwright/touchscreen_impl.rb +14 -0
- data/lib/playwright/transport.rb +61 -10
- data/lib/playwright/url_matcher.rb +24 -2
- data/lib/playwright/utils.rb +48 -13
- data/lib/playwright/version.rb +2 -1
- data/lib/playwright/video.rb +54 -0
- data/lib/playwright/waiter.rb +166 -0
- data/lib/playwright/web_socket_client.rb +167 -0
- data/lib/playwright/web_socket_transport.rb +116 -0
- data/lib/playwright.rb +188 -11
- data/lib/playwright_api/android.rb +46 -11
- data/lib/playwright_api/android_device.rb +182 -31
- data/lib/playwright_api/android_input.rb +22 -13
- data/lib/playwright_api/android_socket.rb +18 -0
- data/lib/playwright_api/android_web_view.rb +24 -0
- data/lib/playwright_api/api_request.rb +26 -0
- data/lib/playwright_api/api_request_context.rb +311 -0
- data/lib/playwright_api/api_response.rb +92 -0
- data/lib/playwright_api/browser.rb +116 -103
- data/lib/playwright_api/browser_context.rb +290 -389
- data/lib/playwright_api/browser_type.rb +96 -118
- data/lib/playwright_api/cdp_session.rb +36 -39
- data/lib/playwright_api/clock.rb +121 -0
- data/lib/playwright_api/console_message.rb +35 -19
- data/lib/playwright_api/dialog.rb +53 -50
- data/lib/playwright_api/download.rb +49 -43
- data/lib/playwright_api/element_handle.rb +354 -402
- data/lib/playwright_api/file_chooser.rb +15 -18
- data/lib/playwright_api/frame.rb +703 -603
- data/lib/playwright_api/frame_locator.rb +285 -0
- data/lib/playwright_api/js_handle.rb +50 -76
- data/lib/playwright_api/keyboard.rb +67 -146
- data/lib/playwright_api/locator.rb +1304 -0
- data/lib/playwright_api/locator_assertions.rb +704 -0
- data/lib/playwright_api/mouse.rb +23 -29
- data/lib/playwright_api/page.rb +1196 -1176
- data/lib/playwright_api/page_assertions.rb +60 -0
- data/lib/playwright_api/playwright.rb +54 -122
- data/lib/playwright_api/request.rb +112 -74
- data/lib/playwright_api/response.rb +92 -20
- data/lib/playwright_api/route.rb +152 -62
- data/lib/playwright_api/selectors.rb +47 -61
- data/lib/playwright_api/touchscreen.rb +8 -2
- data/lib/playwright_api/tracing.rb +128 -0
- data/lib/playwright_api/web_socket.rb +43 -5
- data/lib/playwright_api/worker.rb +74 -34
- data/playwright.gemspec +14 -9
- data/sig/playwright.rbs +658 -0
- metadata +216 -50
- data/docs/api_coverage.md +0 -354
- data/lib/playwright/channel_owners/chromium_browser.rb +0 -8
- data/lib/playwright/channel_owners/chromium_browser_context.rb +0 -8
- data/lib/playwright/channel_owners/console_message.rb +0 -21
- data/lib/playwright/channel_owners/firefox_browser.rb +0 -8
- data/lib/playwright/channel_owners/selectors.rb +0 -4
- data/lib/playwright/channel_owners/webkit_browser.rb +0 -8
- 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
- data/lib/playwright/javascript/function.rb +0 -67
- data/lib/playwright/wait_helper.rb +0 -73
- data/lib/playwright_api/accessibility.rb +0 -93
- data/lib/playwright_api/binding_call.rb +0 -23
- data/lib/playwright_api/chromium_browser_context.rb +0 -57
- data/lib/playwright_api/video.rb +0 -24
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
module Playwright
|
|
2
2
|
define_channel_owner :JSHandle do
|
|
3
|
-
|
|
3
|
+
include Utils::Errors::TargetClosedErrorMethods
|
|
4
|
+
|
|
5
|
+
private def after_initialize
|
|
4
6
|
@preview = @initializer['preview']
|
|
5
7
|
@channel.on('previewUpdated', method(:on_preview_updated))
|
|
6
8
|
end
|
|
@@ -9,24 +11,16 @@ module Playwright
|
|
|
9
11
|
@preview
|
|
10
12
|
end
|
|
11
13
|
|
|
12
|
-
private def on_preview_updated(
|
|
13
|
-
@preview = preview
|
|
14
|
+
private def on_preview_updated(params)
|
|
15
|
+
@preview = params['preview']
|
|
14
16
|
end
|
|
15
17
|
|
|
16
18
|
def evaluate(pageFunction, arg: nil)
|
|
17
|
-
|
|
18
|
-
JavaScript::Function.new(pageFunction, arg).evaluate(@channel)
|
|
19
|
-
else
|
|
20
|
-
JavaScript::Expression.new(pageFunction).evaluate(@channel)
|
|
21
|
-
end
|
|
19
|
+
JavaScript::Expression.new(pageFunction, arg).evaluate(@channel)
|
|
22
20
|
end
|
|
23
21
|
|
|
24
22
|
def evaluate_handle(pageFunction, arg: nil)
|
|
25
|
-
|
|
26
|
-
JavaScript::Function.new(pageFunction, arg).evaluate_handle(@channel)
|
|
27
|
-
else
|
|
28
|
-
JavaScript::Expression.new(pageFunction).evaluate_handle(@channel)
|
|
29
|
-
end
|
|
23
|
+
JavaScript::Expression.new(pageFunction, arg).evaluate_handle(@channel)
|
|
30
24
|
end
|
|
31
25
|
|
|
32
26
|
def get_properties
|
|
@@ -45,6 +39,8 @@ module Playwright
|
|
|
45
39
|
|
|
46
40
|
def dispose
|
|
47
41
|
@channel.send_message_to_server('dispose')
|
|
42
|
+
rescue => err
|
|
43
|
+
raise if !target_closed_error?(err)
|
|
48
44
|
end
|
|
49
45
|
|
|
50
46
|
def json_value
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
module Playwright
|
|
2
|
+
define_channel_owner :LocalUtils do
|
|
3
|
+
def devices
|
|
4
|
+
@devices ||= @initializer['deviceDescriptors'].map do |device|
|
|
5
|
+
[device['name'], parse_device_descriptor(device['descriptor'])]
|
|
6
|
+
end.to_h
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
# @param zip_file [String]
|
|
10
|
+
def zip(params)
|
|
11
|
+
@channel.send_message_to_server('zip', params)
|
|
12
|
+
nil
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
# @param file [String]
|
|
17
|
+
# @return [String] har ID
|
|
18
|
+
def har_open(file)
|
|
19
|
+
@channel.send_message_to_server('harOpen', file: file)
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
def har_lookup(har_id:, url:, method:, headers:, is_navigation_request:, post_data: nil)
|
|
23
|
+
params = {
|
|
24
|
+
harId: har_id,
|
|
25
|
+
url: url,
|
|
26
|
+
method: method,
|
|
27
|
+
headers: headers,
|
|
28
|
+
postData: post_data,
|
|
29
|
+
isNavigationRequest: is_navigation_request,
|
|
30
|
+
}.compact
|
|
31
|
+
|
|
32
|
+
@channel.send_message_to_server_result('harLookup', params)
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
# @param har_id [String]
|
|
36
|
+
def async_har_close(har_id)
|
|
37
|
+
@channel.async_send_message_to_server('harClose', harId: har_id)
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
def har_unzip(zip_file, har_file)
|
|
41
|
+
@channel.send_message_to_server('harUnzip', zipFile: zip_file, harFile: har_file)
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
def tracing_started(traces_dir, trace_name)
|
|
45
|
+
params = {
|
|
46
|
+
tracesDir: traces_dir,
|
|
47
|
+
traceName: trace_name,
|
|
48
|
+
}.compact
|
|
49
|
+
@channel.send_message_to_server('tracingStarted', params)
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
def trace_discarded(stacks_id)
|
|
53
|
+
@channel.send_message_to_server('traceDiscarded', stacksId: stacks_id)
|
|
54
|
+
end
|
|
55
|
+
|
|
56
|
+
def add_stack_to_tracing_no_reply(id, stack)
|
|
57
|
+
@channel.async_send_message_to_server('addStackToTracingNoReply', callData: { id: id, stack: stack })
|
|
58
|
+
nil
|
|
59
|
+
end
|
|
60
|
+
|
|
61
|
+
private def parse_device_descriptor(descriptor)
|
|
62
|
+
# This return value can be passed into Browser#new_context as it is.
|
|
63
|
+
# ex:
|
|
64
|
+
# ```
|
|
65
|
+
# iPhone = playwright.devices['iPhone 6']
|
|
66
|
+
# context = browser.new_context(**iPhone)
|
|
67
|
+
# page = context.new_page
|
|
68
|
+
#
|
|
69
|
+
# ```
|
|
70
|
+
{
|
|
71
|
+
userAgent: descriptor['userAgent'],
|
|
72
|
+
viewport: {
|
|
73
|
+
width: descriptor['viewport']['width'],
|
|
74
|
+
height: descriptor['viewport']['height'],
|
|
75
|
+
},
|
|
76
|
+
deviceScaleFactor: descriptor['deviceScaleFactor'],
|
|
77
|
+
isMobile: descriptor['isMobile'],
|
|
78
|
+
hasTouch: descriptor['hasTouch'],
|
|
79
|
+
}
|
|
80
|
+
end
|
|
81
|
+
end
|
|
82
|
+
end
|