C# - 相当于java的ExpectedConditions.not

时间:2017-12-06 10:34:57

标签: java c# .net selenium

我正在C#中使用Selenium编写一些自动化测试,我需要等到某个元素不处于Stale状态。在java中,我曾经使用类似ExpectedConditions.not(ExpectedConditions.stalenessOf(element)的东西, 但我还没有找到一种方法在C#中做到这一点。

是否有针对此问题的解决方法或者.NET中的Selenium根本没有“Not”属性?

1 个答案:

答案 0 :(得分:0)

我也在寻找这种not方法,似乎没有直到不构造可以在C#中使用开箱即用ExpectedConditions枚举。与Java或Python相比,这是一个不同之处。

但是根据to this answer,您可以使用lambda重写问题:

WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(10));
wait.Until<IWebElement>((d) =>
{
    try {
      // Calling any method forces a staleness check
      element.isEnabled();
      return element;
    } catch (StaleElementReferenceException expected) {
      return null;
    }
});

或者您只能使用其他条件ExpectedConditions.ElementExists