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