【问题标题】:explicit wait different forms显式等待不同的形式
【发布时间】:2021-04-05 07:18:03
【问题描述】:

我写了明确的等待两种方法来完成相同的任务,但其中一种不起作用。一个不起作用的是我一直在学习自动化测试的教程。我想知道第二个代码有什么问题。

工作代码:

IWebElement wait2 = new WebDriverWait(driver, TimeSpan.FromSeconds(10)).Until(ExpectedConditions.ElementToBeClickable(By.Id("finish")));

不工作

WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(10));
IWebElement ele = wait.Until((result) => {
        return result.FindElement(By.Id("finish"));
});

【问题讨论】:

    标签: c# selenium-webdriver automated-tests


    【解决方案1】:

    你已经够近了。使用 lambda 表达式,您可以使用以下解决方案:

    WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(10));
    IWebElement ele = wait.Until(result => result.FindElement(By.Id("finish")));
    

    在一行中:

    new WebDriverWait(driver, TimeSpan.FromSeconds(10)).Until(result => result.FindElement(By.Id("finish")));
    

    【讨论】:

    • 由于某种原因,只有单行解决方案有效。对于另一个,测试甚至在页面上的元素加载之前就完成了。
    • @WaseemAbbas 单行解决方案有什么问题?
    猜你喜欢
    • 2021-03-25
    • 1970-01-01
    • 2022-01-07
    • 2020-01-20
    • 1970-01-01
    • 2023-03-11
    • 1970-01-01
    • 1970-01-01
    • 2017-07-26
    相关资源
    最近更新 更多