use std::time::Duration;
use stygian_browser::{BrowserConfig, BrowserPool, WaitUntil};
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
tracing_subscriber::fmt::init();
let config = BrowserConfig::default();
println!("Launching browser pool...");
let pool = BrowserPool::new(config).await?;
println!("Pool ready — stats: {:?}", pool.stats());
let handle = pool.acquire().await?;
let mut page = handle
.browser()
.ok_or("browser handle no longer valid")?
.new_page()
.await?;
println!("Navigating to https://example.com ...");
page.navigate(
"https://example.com",
WaitUntil::Selector("body".to_string()),
Duration::from_secs(30),
)
.await?;
let title = page.title().await?;
let html = page.content().await?;
println!("Title : {title}");
println!("HTML : {} bytes", html.len());
println!(
"Snippet: {}",
html.chars()
.take(200)
.collect::<String>()
.replace('\n', " ")
);
page.close().await?;
handle.release().await;
println!("Done.");
Ok(())
}