use std::sync::Arc;
use std::time::Duration;
use thirtyfour::common::config::WebDriverConfig;
use thirtyfour::extensions::query::ElementPollerWithTimeout;
use thirtyfour::prelude::*;
#[tokio::main]
async fn main() -> anyhow::Result<()> {
let driver = WebDriver::managed(DesiredCapabilities::chrome()).await?;
driver.goto("https://wikipedia.org").await?;
let elem_form = driver
.query(By::Id("search-form"))
.wait(Duration::from_secs(60), Duration::from_secs(1))
.single()
.await?;
elem_form
.wait_until()
.wait(Duration::from_secs(60), Duration::from_secs(1))
.displayed()
.await?;
let my_poller =
Arc::new(ElementPollerWithTimeout::new(Duration::from_secs(120), Duration::from_secs(1)));
let new_config = WebDriverConfig::builder().poller(my_poller).build()?;
let my_driver = driver.clone_with_config(new_config);
let elem_form = my_driver.query(By::Id("search-form")).single().await?;
elem_form.wait_until().displayed().await?;
driver.quit().await?;
Ok(())
}