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
impl ChromeDevTools
Sourcepub fn new(handle: SessionHandle) -> Self
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());
Sourcepub async fn launch_app(&self, app_id: &str) -> WebDriverResult<()>
pub async fn launch_app(&self, app_id: &str) -> WebDriverResult<()>
Launch the Chrome app with the specified id.
Sourcepub async fn get_network_conditions(&self) -> WebDriverResult<NetworkConditions>
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);
Sourcepub async fn set_network_conditions(
&self,
conditions: &NetworkConditions,
) -> WebDriverResult<()>
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?;
Sourcepub async fn execute_cdp(&self, cmd: &str) -> WebDriverResult<Value>
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();
Sourcepub async fn execute_cdp_with_params(
&self,
cmd: &str,
cmd_args: Value,
) -> WebDriverResult<Value>
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?;
Sourcepub async fn get_sinks(&self) -> WebDriverResult<Value>
pub async fn get_sinks(&self) -> WebDriverResult<Value>
Get the list of sinks available for cast.
Sourcepub async fn get_issue_message(&self) -> WebDriverResult<Value>
pub async fn get_issue_message(&self) -> WebDriverResult<Value>
Get the issue message for any issue in a cast session.
Sourcepub async fn set_sink_to_use(&self, sink_name: &str) -> WebDriverResult<()>
pub async fn set_sink_to_use(&self, sink_name: &str) -> WebDriverResult<()>
Set the specified sink as the cast session receiver target.
Sourcepub async fn start_tab_mirroring(&self, sink_name: &str) -> WebDriverResult<()>
pub async fn start_tab_mirroring(&self, sink_name: &str) -> WebDriverResult<()>
Start a tab mirroring session on the specified receiver target.
Sourcepub async fn stop_casting(&self, sink_name: &str) -> WebDriverResult<()>
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
impl Clone for ChromeDevTools
Source§fn clone(&self) -> ChromeDevTools
fn clone(&self) -> ChromeDevTools
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read more