use anyhow::Result;
use playwright_rs::Playwright;
use tracing::Instrument;
use tracing_subscriber::EnvFilter;
#[tokio::main]
async fn main() -> Result<()> {
let filter =
EnvFilter::try_from_default_env().unwrap_or_else(|_| EnvFilter::new("playwright_rs=info"));
tracing_subscriber::fmt()
.with_env_filter(filter)
.with_target(true)
.init();
let playwright = Playwright::launch().await?;
let browser = playwright.chromium().launch().await?;
let page = browser.new_page().await?;
async {
page.goto("data:text/html,<button id='b'>Pay</button>", None)
.await?;
let button = page.locator("#b").await;
button.click(None).await?;
let _shot = page.screenshot(None).await?;
Ok::<_, anyhow::Error>(())
}
.instrument(tracing::info_span!("checkout_flow", cart_id = 42))
.await?;
browser.close().await?;
Ok(())
}