use zendriver::Browser;
#[tokio::main]
#[allow(clippy::result_large_err)] async fn main() -> zendriver::Result<()> {
tracing_subscriber::fmt::init();
let browser = Browser::builder().headless(true).launch().await?;
let main = browser.main_tab();
main.goto("https://example.com").await?;
main.wait_for_load().await?;
let tab_b = browser
.new_tab_at("data:text/html,<!doctype html><title>B</title><h1>tab B</h1>")
.await?;
tab_b.wait_for_load().await?;
let tab_c = browser
.new_tab_at("data:text/html,<!doctype html><title>C</title><h1>tab C</h1>")
.await?;
tab_c.wait_for_load().await?;
let tabs = browser.tabs().await;
println!("tab_count = {}", browser.tab_count().await);
for (i, tab) in tabs.iter().enumerate() {
let url = tab.url().await?;
let title = tab.title().await?;
println!(
" [{i}] target={} url={url} title={title:?}",
tab.target_id()
);
}
browser.close().await?;
Ok(())
}