1use clawser_browser::Browser;
6
7#[tokio::main]
8async fn main() {
9 let config = std::env::var("CLAWSER_CONFIG").unwrap_or_else(|_| {
10 if let Ok(chrome) = std::env::var("CLAWSER_CHROME_PATH") {
11 let dir = std::path::Path::new(&chrome).parent().unwrap_or(std::path::Path::new("."));
12 let cfg = dir.join("test_profile.json");
13 if cfg.exists() { return cfg.to_string_lossy().to_string(); }
14 }
15 "out/Default/test_profile.json".to_string()
16 });
17
18 println!("=== Input Simulation Test (async) ===\n");
19
20 let browser = Browser::builder().headful().config(&config).build().await
21 .expect("failed to create browser");
22 let page = browser.navigate("https://www.google.com").await
23 .expect("navigate failed");
24
25 println!("[1] Human idle (2s)...");
26 page.human_idle(2000).await.expect("idle failed");
27
28 println!("[2] Scroll...");
29 page.scroll(300).await.expect("scroll failed");
30
31 println!("[3] Click...");
32 page.click(600.0, 300.0).await.expect("click failed");
33
34 println!("[4] Type...");
35 page.type_text("hello").await.expect("type failed");
36
37 println!("[5] Shutting down...");
38 browser.shutdown().await.expect("shutdown failed");
39
40 println!("\n=== PASSED ===");
41}