use thirtyfour::prelude::*;
#[tokio::main]
async fn main() -> color_eyre::Result<()> {
color_eyre::install()?;
std::env::set_var("RUST_BACKTRACE", "1");
let caps = DesiredCapabilities::chrome();
let driver = WebDriver::new("http://localhost:4444", caps).await?;
driver.get("https://web.dev/shadowdom-v1/").await?;
let elem = driver.query(By::Tag("iframe")).first().await?;
driver.switch_to().frame_element(&elem).await?;
let elem = driver.query(By::Tag("fancy-tabs")).first().await?;
let root = elem.get_shadow_root().await?;
let tabs = root.query(By::Id("tabsSlot")).first().await?;
let name = tabs.get_property("name").await?;
assert!(name.is_some());
assert_eq!(name.unwrap(), "title");
driver.quit().await?;
Ok(())
}