screenshot_demo/
screenshot_demo.rs1use anyhow::Result;
2use headless_engine::browser::tab::BrowserTab;
3use headless_engine::network::fingerprint::DeviceProfile;
4use std::fs;
5
6#[tokio::main]
7async fn main() -> Result<()> {
8 println!(">>> Testing Pure-Rust Vector SVG & Wireframe Screenshot Rendering...");
9
10 let mut tab = BrowserTab::with_profile(DeviceProfile::ChromeWindows)?;
11 tab.navigate("https://news.ycombinator.com/").await?;
12
13 let shot = tab.screenshot().expect("Expected screenshot");
14 println!(" * Dimensions: {}x{}", shot.width, shot.height);
15 println!(" * Elements Rendered: {}", shot.element_count);
16 println!(" * SVG Payload Size: {} bytes", shot.svg.len());
17
18 fs::write("screenshot.svg", &shot.svg)?;
20 println!(" * Saved screenshot to 'screenshot.svg'");
21
22 println!("\n>>> ASCII WIREFRAME PREVIEW (FOR AGENT VISION TOKENS):");
24 let preview: String = shot
25 .layout_wireframe
26 .lines()
27 .take(18)
28 .collect::<Vec<_>>()
29 .join("\n");
30 println!("{}", preview);
31
32 Ok(())
33}