thirtyfour::extensions::cdp

Struct ChromeDevTools

Source
pub struct ChromeDevTools {
    pub handle: SessionHandle,
}
Expand description

The ChromeDevTools struct allows you to interact with Chromium-based browsers via the Chrome Devtools Protocol (CDP).

You can find documentation for the available commands here: https://chromedevtools.github.io/devtools-protocol/

§Example

let caps = DesiredCapabilities::chrome();
let driver = WebDriver::new("http://localhost:4444", caps).await?;

// Create a ChromeDevTools struct like this.
let dev_tools = ChromeDevTools::new(driver.handle.clone());
dev_tools.execute_cdp("Network.clearBrowserCache").await?;

Fields§

§handle: SessionHandle

Implementations§

Source§

impl ChromeDevTools

Source

pub fn new(handle: SessionHandle) -> Self

Create a new ChromeDevTools struct.

§Example:
use thirtyfour::extensions::cdp::ChromeDevTools;
block_on(async {
let dev_tools = ChromeDevTools::new(driver.handle.clone());
Source

pub async fn launch_app(&self, app_id: &str) -> WebDriverResult<()>

Launch the Chrome app with the specified id.

Source

pub async fn get_network_conditions(&self) -> WebDriverResult<NetworkConditions>

Get the current network conditions. You must set the conditions first.

§Example:
use thirtyfour::extensions::cdp::{ChromeDevTools, NetworkConditions};
// Create ChromeDevTools struct.
let dev_tools = ChromeDevTools::new(driver.handle.clone());

// First we need to set the network conditions.
let mut conditions = NetworkConditions::new();
conditions.download_throughput = 20;
dev_tools.set_network_conditions(&conditions).await?;

// Now we can get the network conditions.
let conditions_out = dev_tools.get_network_conditions().await?;
assert_eq!(conditions_out.download_throughput, conditions.download_throughput);
Source

pub async fn set_network_conditions( &self, conditions: &NetworkConditions, ) -> WebDriverResult<()>

Set the network conditions.

§Example:
use thirtyfour::extensions::cdp::{ChromeDevTools, NetworkConditions};

// Create ChromeDevTools struct.
let dev_tools = ChromeDevTools::new(driver.handle.clone());

// Now we can set the network conditions. You do not need to set all parameters.
let mut conditions = NetworkConditions::new();
conditions.download_throughput = 20;
conditions.upload_throughput = 10;
conditions.offline = false;
conditions.latency = 200;

dev_tools.set_network_conditions(&conditions).await?;
Source

pub async fn execute_cdp(&self, cmd: &str) -> WebDriverResult<Value>

Execute the specified command without parameters. For commands that require parameters, use execute_cdp_with_params() instead.

You can find documentation for the available commands here: https://chromedevtools.github.io/devtools-protocol/

§Example:
use thirtyfour::extensions::cdp::ChromeDevTools;

let dev_tools = ChromeDevTools::new(driver.handle.clone());
dev_tools.execute_cdp("Network.clearBrowserCache").await?;

// execute_cdp() can also return values as well.
let version_info = dev_tools.execute_cdp("Browser.getVersion").await?;
let user_agent = version_info["userAgent"].as_str().unwrap();
Source

pub async fn execute_cdp_with_params( &self, cmd: &str, cmd_args: Value, ) -> WebDriverResult<Value>

Execute the specified command with the specified parameter(s).

You can find documentation for the available commands here: https://chromedevtools.github.io/devtools-protocol/

§Example:
use thirtyfour::extensions::cdp::ChromeDevTools;
use serde_json::json;
let dev_tools = ChromeDevTools::new(driver.handle.clone());
dev_tools.execute_cdp_with_params("Network.setCacheDisabled", json!({"cacheDisabled": true})).await?;
Source

pub async fn get_sinks(&self) -> WebDriverResult<Value>

Get the list of sinks available for cast.

Source

pub async fn get_issue_message(&self) -> WebDriverResult<Value>

Get the issue message for any issue in a cast session.

Source

pub async fn set_sink_to_use(&self, sink_name: &str) -> WebDriverResult<()>

Set the specified sink as the cast session receiver target.

Source

pub async fn start_tab_mirroring(&self, sink_name: &str) -> WebDriverResult<()>

Start a tab mirroring session on the specified receiver target.

Source

pub async fn stop_casting(&self, sink_name: &str) -> WebDriverResult<()>

Stop the existing cast session on the specified receiver target.

Trait Implementations§

Source§

impl Clone for ChromeDevTools

Source§

fn clone(&self) -> ChromeDevTools

Returns a copy of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dst: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more