A high-level API to control headless Chrome or Chromium over the DevTools Protocol. It is the Rust equivalent of Puppeteer, a Node library maintained by the Chr
A high-level API to control headless Chrome or Chromium over the DevTools Protocol. It is the Rust equivalent of Puppeteer, a Node library maintained by the Chr
A high-level API to control headless Chrome or Chromium over the DevTools Protocol. It is the Rust equivalent of Puppeteer, a Node library maintained by the Chrome DevTools team.
It is not 100% feature compatible with Puppeteer, but there's enough here to satisfy most browser testing / web crawling use cases, and there are several 'advanced' features such as:
…
[dependencies]
headless_chrome = {git = "https://github.com/rust-headless-chrome/rust-headless-chrome", features = ["fetch"]}
For fuller examples, take a look at tests/simple.rs and examples.
Before running examples. Make sure add failure crate in your cargo project dependency of
Cargo.toml
The Chrome DevTools Protocol is huge. Currently, Puppeteer supports way more of it than we do. Some of the missing features include:
EventSources (aka server-sent events or SSEs)If you're interested in adding one of these features but would like some advice about how to start, please reach out by creating an issue or sending me an email at [email protected].
headless_chrome, which has a synchronous API and is just implemented using plain old threads. Fantoccini has also been around longer and is more battle-tested. It doesn't support Chrome DevTools-specific functionality like JS Coverage.For debug output, set these environment variables before running cargo test:
RUST_BACKTRACE=1 RUST_LOG=headless_chrome=trace
Starting with v0.2.0, we're trying to follow SemVar strictly.
If you get errors related to timeouts, you likely need to enable sandboxing either in the kernel or as a setuid sandbox. Puppeteer has some information about how to do that here.
Pull requests and issues are most welcome, even if they're just experience reports. If you find anything frustrating or confusing, let me know!
No open issues yet, or sync has not completed.