use thirtyfour::prelude::*;
#[tokio::main]
async fn main() -> anyhow::Result<()> {
unsafe {
std::env::set_var("RUST_BACKTRACE", "1");
}
let driver = WebDriver::managed(DesiredCapabilities::chrome()).await?;
driver.goto("https://web.dev/shadowdom-v1/").await?;
let elem = driver.query(By::Tag("iframe")).first().await?;
elem.enter_frame().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.prop("name").await?;
assert!(name.is_some());
assert_eq!(name.unwrap(), "title");
driver.quit().await?;
Ok(())
}