basic_navigation/
basic_navigation.rs1use std::time::Duration;
15
16use viewpoint_core::{Browser, DocumentLoadState};
17
18#[tokio::main]
19async fn main() -> Result<(), Box<dyn std::error::Error>> {
20 println!("Launching browser...");
21
22 let browser = Browser::launch()
24 .headless(true)
25 .timeout(Duration::from_secs(30))
26 .launch()
27 .await?;
28
29 println!("Browser launched successfully!");
30
31 let context = browser.new_context().await?;
33 println!("Created browser context: {}", context.id());
34
35 let page = context.new_page().await?;
37 println!("Created page with target: {}", page.target_id());
38
39 println!("\nNavigating to example.com...");
41 let response = page.goto("https://example.com").goto().await?;
42 println!("Navigation complete! URL: {}", response.url());
43
44 println!("\nNavigating to httpbin.org with DomContentLoaded wait...");
46 let response = page
47 .goto("https://httpbin.org/html")
48 .wait_until(DocumentLoadState::DomContentLoaded)
49 .timeout(Duration::from_secs(15))
50 .goto()
51 .await?;
52 println!("Navigation complete! URL: {}", response.url());
53
54 println!("\nNavigating with custom referer...");
56 let response = page
57 .goto("https://httpbin.org/headers")
58 .referer("https://google.com")
59 .wait_until(DocumentLoadState::Load)
60 .goto()
61 .await?;
62 println!("Navigation complete! URL: {}", response.url());
63
64 println!("\nClosing browser...");
66 browser.close().await?;
67 println!("Done!");
68
69 Ok(())
70}