Skip to main content

browser_commander/playwright/protocol/
frame_2.rs

1// @generated by scripts/generate-playwright-protocol.mjs from
2// rust/protocol/playwright/*.yml. Do not edit by hand.
3
4#![allow(clippy::all, missing_docs, unused_imports)]
5
6use serde::{Deserialize, Serialize};
7
8use super::*;
9use crate::playwright::connection::{
10    Binary, Channel, ChannelType, ObjectRef, ProtocolError, ProtocolEvent, Ref,
11};
12
13/// Parameters of `Frame.uncheck` (Uncheck).
14#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
15pub struct FrameUncheckParams {
16    #[serde(rename = "selector")]
17    pub selector: String,
18    #[serde(rename = "strict", default, skip_serializing_if = "Option::is_none")]
19    pub strict: Option<bool>,
20    #[serde(rename = "force", default, skip_serializing_if = "Option::is_none")]
21    pub force: Option<bool>,
22    #[serde(rename = "scroll", default, skip_serializing_if = "Option::is_none")]
23    pub scroll: Option<FrameUncheckParamsScroll>,
24    #[serde(rename = "position", default, skip_serializing_if = "Option::is_none")]
25    pub position: Option<Point>,
26    #[serde(rename = "trial", default, skip_serializing_if = "Option::is_none")]
27    pub trial: Option<bool>,
28}
29
30/// Parameters of `Frame.waitForTimeout` (Wait for timeout).
31#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
32pub struct FrameWaitForTimeoutParams {
33    #[serde(rename = "waitTimeout")]
34    pub wait_timeout: f64,
35}
36
37/// Parameters of `Frame.waitForFunction` (Wait for function).
38#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
39pub struct FrameWaitForFunctionParams {
40    #[serde(rename = "expression")]
41    pub expression: String,
42    #[serde(rename = "isFunction", default, skip_serializing_if = "Option::is_none")]
43    pub is_function: Option<bool>,
44    #[serde(rename = "arg")]
45    pub arg: SerializedArgument,
46    #[serde(rename = "pollingInterval", default, skip_serializing_if = "Option::is_none")]
47    pub polling_interval: Option<f64>,
48    #[serde(rename = "selector", default, skip_serializing_if = "Option::is_none")]
49    pub selector: Option<String>,
50    #[serde(rename = "strict", default, skip_serializing_if = "Option::is_none")]
51    pub strict: Option<bool>,
52}
53
54/// Result of `Frame.waitForFunction` (Wait for function).
55#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
56pub struct FrameWaitForFunctionResult {
57    #[serde(rename = "handle", default, skip_serializing_if = "Option::is_none")]
58    pub handle: Option<Ref<JSHandle>>,
59}
60
61#[derive(Debug, Clone, Copy, Default, PartialEq, Eq, Hash, Serialize, Deserialize)]
62pub enum FrameWaitForSelectorParamsState {
63    #[default]
64    #[serde(rename = "attached")]
65    Attached,
66    #[serde(rename = "detached")]
67    Detached,
68    #[serde(rename = "visible")]
69    Visible,
70    #[serde(rename = "hidden")]
71    Hidden,
72}
73
74/// Parameters of `Frame.waitForSelector` (Wait for selector).
75#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
76pub struct FrameWaitForSelectorParams {
77    #[serde(rename = "selector")]
78    pub selector: String,
79    #[serde(rename = "strict", default, skip_serializing_if = "Option::is_none")]
80    pub strict: Option<bool>,
81    #[serde(rename = "state", default, skip_serializing_if = "Option::is_none")]
82    pub state: Option<FrameWaitForSelectorParamsState>,
83    #[serde(rename = "omitReturnValue", default, skip_serializing_if = "Option::is_none")]
84    pub omit_return_value: Option<bool>,
85}
86
87/// Result of `Frame.waitForSelector` (Wait for selector).
88#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
89pub struct FrameWaitForSelectorResult {
90    #[serde(rename = "element", default, skip_serializing_if = "Option::is_none")]
91    pub element: Option<Ref<ElementHandle>>,
92}
93
94#[derive(Debug, Clone, Copy, Default, PartialEq, Eq, Hash, Serialize, Deserialize)]
95pub enum FrameExpectParamsPseudo {
96    #[default]
97    #[serde(rename = "before")]
98    Before,
99    #[serde(rename = "after")]
100    After,
101}
102
103/// Parameters of `Frame.expect` (Expect "{expression}").
104#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
105pub struct FrameExpectParams {
106    #[serde(rename = "selector", default, skip_serializing_if = "Option::is_none")]
107    pub selector: Option<String>,
108    #[serde(rename = "expression")]
109    pub expression: String,
110    #[serde(rename = "expressionArg", default, skip_serializing_if = "Option::is_none")]
111    pub expression_arg: Option<serde_json::Value>,
112    #[serde(rename = "pseudo", default, skip_serializing_if = "Option::is_none")]
113    pub pseudo: Option<FrameExpectParamsPseudo>,
114    #[serde(rename = "expectedText", default, skip_serializing_if = "Option::is_none")]
115    pub expected_text: Option<Vec<ExpectedTextValue>>,
116    #[serde(rename = "expectedNumber", default, skip_serializing_if = "Option::is_none")]
117    pub expected_number: Option<f64>,
118    #[serde(rename = "expectedValue", default, skip_serializing_if = "Option::is_none")]
119    pub expected_value: Option<SerializedArgument>,
120    #[serde(rename = "useInnerText", default, skip_serializing_if = "Option::is_none")]
121    pub use_inner_text: Option<bool>,
122    #[serde(rename = "isNot")]
123    pub is_not: bool,
124}
125
126/// Payload of the `Frame.loadstate` event.
127#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
128pub struct FrameLoadstateEventParams {
129    #[serde(rename = "add", default, skip_serializing_if = "Option::is_none")]
130    pub add: Option<LifecycleEvent>,
131    #[serde(rename = "remove", default, skip_serializing_if = "Option::is_none")]
132    pub remove: Option<LifecycleEvent>,
133}
134
135#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
136pub struct FrameNavigatedEventParamsNewDocument {
137    #[serde(rename = "request", default, skip_serializing_if = "Option::is_none")]
138    pub request: Option<Ref<Request>>,
139}
140
141/// Payload of the `Frame.navigated` event.
142#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
143pub struct FrameNavigatedEventParams {
144    #[serde(rename = "url")]
145    pub url: String,
146    #[serde(rename = "name")]
147    pub name: String,
148    #[serde(rename = "newDocument", default, skip_serializing_if = "Option::is_none")]
149    pub new_document: Option<FrameNavigatedEventParamsNewDocument>,
150    #[serde(rename = "error", default, skip_serializing_if = "Option::is_none")]
151    pub error: Option<String>,
152}
153
154/// Events a `Frame` channel can emit.
155#[derive(Debug, Clone, PartialEq)]
156pub enum FrameEvent {
157    /// `Frame.loadstate`
158    Loadstate(FrameLoadstateEventParams),
159    /// `Frame.navigated`
160    Navigated(FrameNavigatedEventParams),
161    /// An event this binding does not know (a newer driver).
162    Unknown {
163        /// Event name.
164        method: String,
165        /// Raw event parameters.
166        params: serde_json::Value,
167    },
168}
169
170impl ProtocolEvent for FrameEvent {
171    fn parse(method: &str, params: serde_json::Value) -> Result<Self, serde_json::Error> {
172        match method {
173            "loadstate" => Ok(Self::Loadstate(serde_json::from_value(params)?)),
174            "navigated" => Ok(Self::Navigated(serde_json::from_value(params)?)),
175            _ => Ok(Self::Unknown { method: method.to_string(), params }),
176        }
177    }
178}
179
180/// Channel for the `Frame` interface (`frame.yml`).
181#[derive(Debug, Clone)]
182pub struct Frame {
183    channel: Channel,
184}
185
186impl ChannelType for Frame {
187    const INTERFACE: &'static str = "Frame";
188    type Initializer = FrameInitializer;
189    type Event = FrameEvent;
190
191    fn accepts(interface: &str) -> bool {
192        matches!(interface, "Frame")
193    }
194
195    fn from_channel(channel: Channel) -> Self {
196        Self { channel }
197    }
198
199    fn channel(&self) -> &Channel {
200        &self.channel
201    }
202}
203
204impl Frame {
205    /// `Frame.evalOnSelector` ("Evaluate").
206    pub async fn eval_on_selector(&self, params: FrameEvalOnSelectorParams) -> Result<FrameEvalOnSelectorResult, ProtocolError> {
207        self.channel.send("evalOnSelector", &params).await
208    }
209
210    /// `Frame.evalOnSelectorAll` ("Evaluate").
211    pub async fn eval_on_selector_all(&self, params: FrameEvalOnSelectorAllParams) -> Result<FrameEvalOnSelectorAllResult, ProtocolError> {
212        self.channel.send("evalOnSelectorAll", &params).await
213    }
214
215    /// `Frame.addScriptTag` ("Add script tag").
216    pub async fn add_script_tag(&self, params: FrameAddScriptTagParams) -> Result<FrameAddScriptTagResult, ProtocolError> {
217        self.channel.send("addScriptTag", &params).await
218    }
219
220    /// `Frame.addStyleTag` ("Add style tag").
221    pub async fn add_style_tag(&self, params: FrameAddStyleTagParams) -> Result<FrameAddStyleTagResult, ProtocolError> {
222        self.channel.send("addStyleTag", &params).await
223    }
224
225    /// `Frame.ariaSnapshot` ("Aria snapshot").
226    pub async fn aria_snapshot(&self, params: FrameAriaSnapshotParams) -> Result<FrameAriaSnapshotResult, ProtocolError> {
227        self.channel.send("ariaSnapshot", &params).await
228    }
229
230    /// `Frame.ariaSnapshotJSON` ("Aria snapshot JSON").
231    pub async fn aria_snapshot_json(&self, params: FrameAriaSnapshotJSONParams) -> Result<FrameAriaSnapshotJSONResult, ProtocolError> {
232        self.channel.send("ariaSnapshotJSON", &params).await
233    }
234
235    /// `Frame.blur` ("Blur").
236    pub async fn blur(&self, params: FrameBlurParams) -> Result<(), ProtocolError> {
237        self.channel.send_no_result("blur", &params).await
238    }
239
240    /// `Frame.check` ("Check").
241    pub async fn check(&self, params: FrameCheckParams) -> Result<(), ProtocolError> {
242        self.channel.send_no_result("check", &params).await
243    }
244
245    /// `Frame.click` ("Click").
246    pub async fn click(&self, params: FrameClickParams) -> Result<(), ProtocolError> {
247        self.channel.send_no_result("click", &params).await
248    }
249
250    /// `Frame.content` ("Get content").
251    pub async fn content(&self) -> Result<FrameContentResult, ProtocolError> {
252        self.channel.send("content", &serde_json::json!({})).await
253    }
254
255    /// `Frame.dragAndDrop` ("Drag and drop").
256    pub async fn drag_and_drop(&self, params: FrameDragAndDropParams) -> Result<(), ProtocolError> {
257        self.channel.send_no_result("dragAndDrop", &params).await
258    }
259
260    /// `Frame.drop` ("Drop files or data onto an element").
261    pub async fn drop(&self, params: FrameDropParams) -> Result<(), ProtocolError> {
262        self.channel.send_no_result("drop", &params).await
263    }
264
265    /// `Frame.dblclick` ("Double click").
266    pub async fn dblclick(&self, params: FrameDblclickParams) -> Result<(), ProtocolError> {
267        self.channel.send_no_result("dblclick", &params).await
268    }
269
270    /// `Frame.dispatchEvent` ("Dispatch "{type}"").
271    pub async fn dispatch_event(&self, params: FrameDispatchEventParams) -> Result<(), ProtocolError> {
272        self.channel.send_no_result("dispatchEvent", &params).await
273    }
274
275    /// `Frame.evaluateExpression` ("Evaluate").
276    pub async fn evaluate_expression(&self, params: FrameEvaluateExpressionParams) -> Result<FrameEvaluateExpressionResult, ProtocolError> {
277        self.channel.send("evaluateExpression", &params).await
278    }
279
280    /// `Frame.evaluateExpressionHandle` ("Evaluate").
281    pub async fn evaluate_expression_handle(&self, params: FrameEvaluateExpressionHandleParams) -> Result<FrameEvaluateExpressionHandleResult, ProtocolError> {
282        self.channel.send("evaluateExpressionHandle", &params).await
283    }
284
285    /// `Frame.fill` ("Fill "{value}"").
286    pub async fn fill(&self, params: FrameFillParams) -> Result<(), ProtocolError> {
287        self.channel.send_no_result("fill", &params).await
288    }
289
290    /// `Frame.focus` ("Focus").
291    pub async fn focus(&self, params: FrameFocusParams) -> Result<(), ProtocolError> {
292        self.channel.send_no_result("focus", &params).await
293    }
294
295    /// `Frame.frameElement` ("Get frame element").
296    pub async fn frame_element(&self) -> Result<FrameFrameElementResult, ProtocolError> {
297        self.channel.send("frameElement", &serde_json::json!({})).await
298    }
299
300    /// `Frame.resolveSelector` (internal).
301    pub async fn resolve_selector(&self, params: FrameResolveSelectorParams) -> Result<FrameResolveSelectorResult, ProtocolError> {
302        self.channel.send("resolveSelector", &params).await
303    }
304
305    /// `Frame.highlight` (internal).
306    pub async fn highlight(&self, params: FrameHighlightParams) -> Result<(), ProtocolError> {
307        self.channel.send_no_result("highlight", &params).await
308    }
309
310    /// `Frame.hideHighlight` (internal).
311    pub async fn hide_highlight(&self, params: FrameHideHighlightParams) -> Result<(), ProtocolError> {
312        self.channel.send_no_result("hideHighlight", &params).await
313    }
314
315    /// `Frame.getAttribute` ("Get attribute "{name}"").
316    pub async fn get_attribute(&self, params: FrameGetAttributeParams) -> Result<FrameGetAttributeResult, ProtocolError> {
317        self.channel.send("getAttribute", &params).await
318    }
319
320    /// `Frame.goto` ("Navigate").
321    pub async fn goto(&self, params: FrameGotoParams) -> Result<FrameGotoResult, ProtocolError> {
322        self.channel.send("goto", &params).await
323    }
324
325    /// `Frame.hover` ("Hover").
326    pub async fn hover(&self, params: FrameHoverParams) -> Result<(), ProtocolError> {
327        self.channel.send_no_result("hover", &params).await
328    }
329
330    /// `Frame.innerHTML` ("Get HTML").
331    pub async fn inner_html(&self, params: FrameInnerHTMLParams) -> Result<FrameInnerHTMLResult, ProtocolError> {
332        self.channel.send("innerHTML", &params).await
333    }
334
335    /// `Frame.innerText` ("Get inner text").
336    pub async fn inner_text(&self, params: FrameInnerTextParams) -> Result<FrameInnerTextResult, ProtocolError> {
337        self.channel.send("innerText", &params).await
338    }
339
340    /// `Frame.inputValue` ("Get input value").
341    pub async fn input_value(&self, params: FrameInputValueParams) -> Result<FrameInputValueResult, ProtocolError> {
342        self.channel.send("inputValue", &params).await
343    }
344
345    /// `Frame.isChecked` ("Is checked").
346    pub async fn is_checked(&self, params: FrameIsCheckedParams) -> Result<FrameIsCheckedResult, ProtocolError> {
347        self.channel.send("isChecked", &params).await
348    }
349
350    /// `Frame.isDisabled` ("Is disabled").
351    pub async fn is_disabled(&self, params: FrameIsDisabledParams) -> Result<FrameIsDisabledResult, ProtocolError> {
352        self.channel.send("isDisabled", &params).await
353    }
354
355    /// `Frame.isEnabled` ("Is enabled").
356    pub async fn is_enabled(&self, params: FrameIsEnabledParams) -> Result<FrameIsEnabledResult, ProtocolError> {
357        self.channel.send("isEnabled", &params).await
358    }
359
360    /// `Frame.isHidden` ("Is hidden").
361    pub async fn is_hidden(&self, params: FrameIsHiddenParams) -> Result<FrameIsHiddenResult, ProtocolError> {
362        self.channel.send("isHidden", &params).await
363    }
364
365    /// `Frame.isVisible` ("Is visible").
366    pub async fn is_visible(&self, params: FrameIsVisibleParams) -> Result<FrameIsVisibleResult, ProtocolError> {
367        self.channel.send("isVisible", &params).await
368    }
369
370    /// `Frame.isEditable` ("Is editable").
371    pub async fn is_editable(&self, params: FrameIsEditableParams) -> Result<FrameIsEditableResult, ProtocolError> {
372        self.channel.send("isEditable", &params).await
373    }
374
375    /// `Frame.press` ("Press "{key}"").
376    pub async fn press(&self, params: FramePressParams) -> Result<(), ProtocolError> {
377        self.channel.send_no_result("press", &params).await
378    }
379
380    /// `Frame.querySelector` ("Query selector").
381    pub async fn query_selector(&self, params: FrameQuerySelectorParams) -> Result<FrameQuerySelectorResult, ProtocolError> {
382        self.channel.send("querySelector", &params).await
383    }
384
385    /// `Frame.querySelectorAll` ("Query selector all").
386    pub async fn query_selector_all(&self, params: FrameQuerySelectorAllParams) -> Result<FrameQuerySelectorAllResult, ProtocolError> {
387        self.channel.send("querySelectorAll", &params).await
388    }
389
390    /// `Frame.queryCount` ("Query count").
391    pub async fn query_count(&self, params: FrameQueryCountParams) -> Result<FrameQueryCountResult, ProtocolError> {
392        self.channel.send("queryCount", &params).await
393    }
394
395    /// `Frame.selectOption` ("Select option").
396    pub async fn select_option(&self, params: FrameSelectOptionParams) -> Result<FrameSelectOptionResult, ProtocolError> {
397        self.channel.send("selectOption", &params).await
398    }
399
400    /// `Frame.setContent` ("Set content").
401    pub async fn set_content(&self, params: FrameSetContentParams) -> Result<(), ProtocolError> {
402        self.channel.send_no_result("setContent", &params).await
403    }
404
405    /// `Frame.setInputFiles` ("Set input files").
406    pub async fn set_input_files(&self, params: FrameSetInputFilesParams) -> Result<(), ProtocolError> {
407        self.channel.send_no_result("setInputFiles", &params).await
408    }
409
410    /// `Frame.tap` ("Tap").
411    pub async fn tap(&self, params: FrameTapParams) -> Result<(), ProtocolError> {
412        self.channel.send_no_result("tap", &params).await
413    }
414
415    /// `Frame.textContent` ("Get text content").
416    pub async fn text_content(&self, params: FrameTextContentParams) -> Result<FrameTextContentResult, ProtocolError> {
417        self.channel.send("textContent", &params).await
418    }
419
420    /// `Frame.title` ("Get page title").
421    pub async fn title(&self) -> Result<FrameTitleResult, ProtocolError> {
422        self.channel.send("title", &serde_json::json!({})).await
423    }
424
425    /// `Frame.type` ("Type "{text}"").
426    pub async fn r#type(&self, params: FrameTypeParams) -> Result<(), ProtocolError> {
427        self.channel.send_no_result("type", &params).await
428    }
429
430    /// `Frame.uncheck` ("Uncheck").
431    pub async fn uncheck(&self, params: FrameUncheckParams) -> Result<(), ProtocolError> {
432        self.channel.send_no_result("uncheck", &params).await
433    }
434
435    /// `Frame.waitForTimeout` ("Wait for timeout").
436    pub async fn wait_for_timeout(&self, params: FrameWaitForTimeoutParams) -> Result<(), ProtocolError> {
437        self.channel.send_no_result("waitForTimeout", &params).await
438    }
439
440    /// `Frame.waitForFunction` ("Wait for function").
441    pub async fn wait_for_function(&self, params: FrameWaitForFunctionParams) -> Result<FrameWaitForFunctionResult, ProtocolError> {
442        self.channel.send("waitForFunction", &params).await
443    }
444
445    /// `Frame.waitForSelector` ("Wait for selector").
446    pub async fn wait_for_selector(&self, params: FrameWaitForSelectorParams) -> Result<FrameWaitForSelectorResult, ProtocolError> {
447        self.channel.send("waitForSelector", &params).await
448    }
449
450    /// `Frame.expect` ("Expect "{expression}"").
451    pub async fn expect(&self, params: FrameExpectParams) -> Result<(), ProtocolError> {
452        self.channel.send_no_result("expect", &params).await
453    }
454}