Crate chrome_remote_interface[][src]

Chrome DevTools Protocol client.

Currently Work In Progress.

Example

use chrome_remote_interface::Browser;
use chrome_remote_interface::model::target::{CreateTargetCommand, AttachToTargetCommand};

#[tokio::main(flavor = "current_thread")]
async fn main() -> anyhow::Result<()> {
    let browser = Browser::launcher()
        .headless(true) // headless mode (Default)
        .launch()
        .await?;

    let (mut client, task) = browser.connect().await?;
    tokio::spawn(task); // Spawn message loop.

    // Open new page
    let response = client.request(CreateTargetCommand::builder()
            .url("https://example.org/".into())
            .build()
            .unwrap()
        )
        .await?;

    // Attach opened page.
    let response = client
        .request(AttachToTargetCommand::new((*response).clone(), Some(true)))
        .await?;

    // construct attached session.
    let mut session = client.session(response);
    // DO STUFF

    Ok(())
}

License

Licensed under either of

  • Apache License, Version 2.0 (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
  • MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT) at your option.

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.!

Re-exports

pub use chrome_remote_interface_model as model;

Structs

Browser

Represent instance.

CdpClient

Chrome DevTools Protocol Client.

CdpEvents

Stream for Chrome DevTools Protocol Event.

CdpSession

Chrome DevTools Protocol Session.

Launcher

Launcher (Builder) for Browser.

Loop

Message loop.

Enums

BrowserError

Operate browser error.

BrowserType

Browser type.

Error

Chrome DevTools Protocol Client Error.

Type Definitions

Result

Chrome DevTools Protocol Result.