Skip to main content

playwright_rs/protocol/
mod.rs

1// Copyright 2026 Paul Adamson
2// Licensed under the Apache License, Version 2.0
3//
4// Protocol Objects - Rust representations of Playwright protocol objects
5//
6// This module contains the Rust implementations of all Playwright protocol objects.
7// Each object corresponds to a type in the Playwright protocol (protocol.yml).
8//
9// Architecture:
10// - All protocol objects implement the ChannelOwner trait
11// - Objects are created by the object factory when server sends __create__ messages
12// - Objects communicate with the server via their Channel
13
14pub mod action_options;
15pub mod android;
16pub mod api_request_context;
17pub mod artifact;
18pub mod browser;
19pub mod browser_context;
20pub mod browser_type;
21pub mod click;
22pub mod dialog;
23pub mod download;
24pub mod drag_to;
25pub mod electron;
26pub mod element_handle;
27pub mod evaluate_conversion;
28pub mod file_payload;
29pub mod frame;
30pub mod keyboard;
31pub mod local_utils;
32pub mod locator;
33pub mod mouse;
34pub mod page;
35pub mod playwright;
36pub mod proxy;
37pub mod request;
38pub mod response;
39pub mod root;
40pub mod route;
41pub mod screenshot;
42pub mod select_option;
43pub mod tap;
44pub mod tracing;
45pub mod wait_for;
46pub mod web_socket;
47
48pub use action_options::{
49    CheckOptions, FillOptions, HoverOptions, KeyboardOptions, MouseOptions, PressOptions,
50    PressSequentiallyOptions, SelectOptions,
51};
52pub use android::Android;
53pub use api_request_context::APIRequestContext;
54pub use browser::Browser;
55pub use browser_context::{
56    BrowserContext, BrowserContextOptions, BrowserContextOptionsBuilder, ClearCookiesOptions,
57    Cookie, Geolocation, GrantPermissionsOptions, LocalStorageItem, Origin, RecordHar, RecordVideo,
58    StorageState, Viewport,
59};
60pub use browser_type::BrowserType;
61pub use click::{ClickOptions, KeyboardModifier, MouseButton, Position};
62pub use dialog::Dialog;
63pub use download::Download;
64pub use drag_to::{DragToOptions, DragToOptionsBuilder};
65pub use electron::Electron;
66pub use element_handle::ElementHandle;
67pub use evaluate_conversion::{parse_result, parse_value, serialize_argument, serialize_null};
68pub use file_payload::{FilePayload, FilePayloadBuilder};
69pub use frame::Frame;
70pub use keyboard::Keyboard;
71pub use local_utils::LocalUtils;
72pub use locator::{AriaRole, BoundingBox, FilterOptions, GetByRoleOptions, Locator};
73pub use mouse::Mouse;
74pub use page::{
75    AddScriptTagOptions, AddScriptTagOptionsBuilder, AddStyleTagOptions, ColorScheme,
76    EmulateMediaOptions, EmulateMediaOptionsBuilder, ForcedColors, GotoOptions, Media, Page,
77    PdfMargin, PdfOptions, PdfOptionsBuilder, ReducedMotion, Response, WaitUntil,
78};
79pub use playwright::Playwright;
80pub use proxy::ProxySettings;
81pub use request::{Request, ResourceTiming};
82pub use response::{HeaderEntry, RemoteAddr, RequestSizes, ResponseObject, SecurityDetails};
83pub use root::Root;
84pub use route::{
85    ContinueOptions, ContinueOptionsBuilder, FetchOptions, FetchOptionsBuilder, FetchResponse,
86    FulfillOptions, FulfillOptionsBuilder, Route, UnrouteBehavior,
87};
88pub use screenshot::{ScreenshotClip, ScreenshotOptions, ScreenshotType};
89pub use select_option::SelectOption;
90pub use tap::{TapOptions, TapOptionsBuilder};
91pub use tracing::Tracing;
92pub use wait_for::{WaitForOptions, WaitForOptionsBuilder, WaitForState};
93pub use web_socket::WebSocket;