159 lines
3.9 KiB
Rust
159 lines
3.9 KiB
Rust
use serde::{Deserialize, Serialize};
|
|
|
|
#[derive(Debug, Deserialize)]
|
|
#[serde(rename_all = "camelCase")]
|
|
pub struct Hello {
|
|
pub application_type: String,
|
|
pub marionette_protocol: u16,
|
|
}
|
|
|
|
#[derive(Debug, Deserialize)]
|
|
#[serde(rename_all = "camelCase")]
|
|
#[allow(dead_code)]
|
|
pub struct Timeouts {
|
|
implicit: u32,
|
|
page_load: u32,
|
|
script: u32,
|
|
}
|
|
|
|
#[derive(Debug, Deserialize)]
|
|
#[serde(rename_all = "camelCase")]
|
|
#[allow(dead_code)]
|
|
pub struct Capabilities {
|
|
pub accept_insecure_certs: bool,
|
|
pub browser_name: String,
|
|
pub browser_version: String,
|
|
#[serde(rename = "moz:accessibilityChecks")]
|
|
pub accessibility_checks: bool,
|
|
#[serde(rename = "moz:buildID")]
|
|
pub build_id: String,
|
|
#[serde(rename = "moz:headless")]
|
|
pub headless: bool,
|
|
#[serde(rename = "moz:processID")]
|
|
pub process_id: u128,
|
|
#[serde(rename = "moz:profile")]
|
|
pub profile: String,
|
|
#[serde(rename = "moz:shutdownTimeout")]
|
|
pub shutdown_timeout: u32,
|
|
#[serde(rename = "moz:useNonSpecCompliantPointerOrigin")]
|
|
pub use_non_spec_compliant_pointer_origin: bool,
|
|
#[serde(rename = "moz:webdriverClick")]
|
|
pub webdriver_click: bool,
|
|
pub page_load_strategy: String,
|
|
pub platform_name: String,
|
|
pub platform_version: String,
|
|
// proxy:
|
|
pub set_window_rect: bool,
|
|
pub timeouts: Timeouts,
|
|
pub unhandled_prompt_behavior: String,
|
|
}
|
|
|
|
#[derive(Debug, Deserialize)]
|
|
#[serde(rename_all = "camelCase")]
|
|
#[allow(dead_code)]
|
|
pub struct NewSessionResponse {
|
|
pub capabilities: Capabilities,
|
|
pub session_id: String,
|
|
}
|
|
|
|
#[derive(Debug, Serialize)]
|
|
#[serde(rename_all = "camelCase")]
|
|
pub struct NewSessionParams {
|
|
pub strict_file_interactability: bool,
|
|
}
|
|
|
|
#[derive(Debug, Deserialize)]
|
|
#[serde(rename_all = "camelCase")]
|
|
#[allow(dead_code)]
|
|
pub struct GetTitleResponse {
|
|
pub value: String,
|
|
}
|
|
|
|
#[derive(Debug, Deserialize)]
|
|
#[serde(rename_all = "camelCase")]
|
|
#[allow(dead_code)]
|
|
pub struct GetCurrentUrlResponse {
|
|
pub value: String,
|
|
}
|
|
|
|
#[derive(Debug, Serialize)]
|
|
#[serde(rename_all = "camelCase")]
|
|
#[allow(dead_code)]
|
|
pub struct NavigateParams {
|
|
pub url: String,
|
|
}
|
|
|
|
#[derive(Debug, Serialize)]
|
|
#[serde(rename_all = "camelCase")]
|
|
#[allow(dead_code)]
|
|
pub struct CloseWindowParams {
|
|
pub handle: String,
|
|
}
|
|
|
|
#[derive(Debug, Serialize)]
|
|
#[serde(rename_all = "lowercase")]
|
|
#[allow(dead_code)]
|
|
pub enum WindowType {
|
|
Window,
|
|
Tab,
|
|
}
|
|
|
|
#[derive(Debug, Serialize)]
|
|
#[serde(rename_all = "camelCase")]
|
|
#[allow(dead_code)]
|
|
pub struct NewWindowParams {
|
|
#[serde(rename = "type")]
|
|
pub window_type: WindowType,
|
|
pub focus: bool,
|
|
}
|
|
|
|
#[derive(Debug, Deserialize)]
|
|
#[serde(rename_all = "camelCase")]
|
|
#[allow(dead_code)]
|
|
pub struct NewWindowResponse {
|
|
pub handle: String,
|
|
}
|
|
|
|
#[derive(Debug, Serialize)]
|
|
#[serde(rename_all = "camelCase")]
|
|
#[allow(dead_code)]
|
|
pub struct SwitchToWindowParams {
|
|
pub handle: String,
|
|
pub focus: bool,
|
|
}
|
|
|
|
#[derive(Debug, Deserialize, Serialize)]
|
|
#[serde(rename_all = "camelCase")]
|
|
#[allow(dead_code)]
|
|
pub struct WindowRect {
|
|
pub x: Option<i32>,
|
|
pub y: Option<i32>,
|
|
pub height: Option<u32>,
|
|
pub width: Option<u32>,
|
|
}
|
|
|
|
#[derive(Debug, Serialize)]
|
|
#[serde(tag = "command", content = "params")]
|
|
pub enum Command {
|
|
#[serde(rename = "WebDriver:NewSession")]
|
|
NewSession(NewSessionParams),
|
|
#[serde(rename = "WebDriver:GetTitle")]
|
|
GetTitle,
|
|
#[serde(rename = "WebDriver:Navigate")]
|
|
Navigate(NavigateParams),
|
|
#[serde(rename = "WebDriver:GetCurrentURL")]
|
|
GetCurrentUrl,
|
|
#[serde(rename = "WebDriver:GetWindowHandles")]
|
|
GetWindowHandles,
|
|
#[serde(rename = "WebDriver:CloseWindow")]
|
|
CloseWindow(CloseWindowParams),
|
|
#[serde(rename = "WebDriver:NewWindow")]
|
|
NewWindow(NewWindowParams),
|
|
#[serde(rename = "WebDriver:SwitchToWindow")]
|
|
SwitchToWindow(SwitchToWindowParams),
|
|
#[serde(rename = "WebDriver:FullscreenWindow")]
|
|
FullscreenWindow,
|
|
#[serde(rename = "WebDriver:SetWindowRect")]
|
|
SetWindowRect(WindowRect),
|
|
}
|