use rpage::sync_page::SyncPage;
fn main() -> rpage::Result<()> {
println!("=== SyncPage Demo ===\n");
let page = SyncPage::connect("http://127.0.0.1:9222")?;
println!("✓ Connected to active tab");
page.get("https://www.example.com")?;
println!("✓ Navigated to example.com");
let title = page.title()?;
let url = page.url()?;
println!(" Title: {title}");
println!(" URL: {url}");
let h1 = page.ele("tag:h1")?;
println!(" H1: {}", h1.text());
let links = page.links()?;
println!(" Links: {} found", links.len());
for link in links.iter().take(3) {
println!(" - {link}");
}
page.screenshot("sync_demo_screenshot.png")?;
println!("✓ Screenshot saved");
let result = page.execute("document.querySelectorAll('p').length")?;
println!(" Paragraph count: {result}");
page.scroll_to_bottom()?;
page.scroll_to_top()?;
println!("✓ Scroll test passed");
let cookies = page.cookies()?;
println!(" Cookies: {} found", cookies.len());
let (x, y, w, h) = page.get_window_bounds()?;
println!(" Window: ({x},{y}) {w}x{h}");
let elements = page.interactive_elements()?;
println!(" Interactive elements: {}", elements.len());
let snapshot = page.page_snapshot()?;
println!(
" Page snapshot: {} interactive, {} chars visible text",
snapshot.interactive_elements.len(),
snapshot.visible_text.len().min(100)
);
println!("\n=== All Done ===");
Ok(())
}