[[rust-headless-chrome]]を使ってみた。 ```console cargo init rust-headless-chrome-use cd rust-headless-chrome-use ``` `Cargo.toml`に追加。 ```toml [dependencies] headless_chrome = "0.9.0" failure = "0.1.8" ``` `main.rs`に実装。 ```rust use headless_chrome::{protocol::page::ScreenshotFormat, Browser, LaunchOptionsBuilder}; fn main() -> Result<(), failure::Error> { // 1920x1080のウィンドウサイズでブラウザを立ち上げ let options = LaunchOptionsBuilder::default() .window_size(Some((1920, 1080))) .build() .expect("Fail to build"); let browser = Browser::new(options)?; // rust-headless-chromeのページに遷移 let tab = browser.wait_for_initial_tab()?; tab.navigate_to("https://github.com/atroche/rust-headless-chrome")?; tab.wait_until_navigated()?; // PNGでキャプチャを撮影してファイルに保存 let png = tab.capture_screenshot(ScreenshotFormat::PNG, None, true)?; std::fs::write("./page.png", png)?; Ok(()) } ``` 実行すると`page.png`が作成される。 ```console cargo run ``` > [!attention] > [[IntelliJ Rust]]では`LaunchOptionsBuilder`が認識されなかったので補完が使えなかった。 ## 参考 - [Rustでブラウザを操作する「rust\-headless\-chrome」を試してみた \| DevelopersIO](https://dev.classmethod.jp/articles/rust-headless-chrome/)