WebDriver 等三十四? (铁锈硒)

问题描述 投票:0回答:1

在Python和Java的Selenium中,可以等待URL更改为特定值。铁锈箱子

thirtyfour
里有类似的功能吗?

Java 示例:

new WebDriverWait(driver, 20).Until(ExpectedConditions.UrlToBe("my-url"));

现在,我已经编写了这个等待函数:

use tokio::time;
use tokio::time::{Duration, Instant};
use anyhow::{bail, Context, Result};
use thirtyfour::{prelude::*, Key};

async fn wait_for_url(driver: &WebDriver, url: &str, timeout: &Duration) -> Result<()> {
    let start = Instant::now();
    loop {
        time::sleep(Duration::from_millis(500)).await;
        let current_url = driver.current_url().await?;
        if current_url.as_str() == url {
            return Ok(());
        }
        if &(time::Instant::now() - start) > timeout {
            bail!("Timeout waiting for {url}. Current url is {current_url}");
        }
    }
}
selenium-webdriver rust thirtyfour
1个回答
0
投票

我在

thirtyfour
中找不到一个函数可以实现你想要的功能,而你所做的基本上就是 Python 版本在幕后所做的事情(即使具有相同的轮询时间),所以我认为这就是你应该做的。

© www.soinside.com 2019 - 2024. All rights reserved.