chrome-remote-interface

Chrome DevTools Protocol client.

Currently Work In Progress.

Example

```rust use chromeremoteinterface::Browser; use chromeremoteinterface::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.!

License: MIT OR Apache-2.0