Selenium - 无法识别 ExpectedConditions 的扩展方法,或者:更好的选择?

Selenium - Extension method for ExpectedConditions not recognized, or: better alternatives?

我想向我的 Selenium 项目添加一些自定义 ExpectedConditions。 扩展方法似乎是最简单的方法。

所以这是我当前的代码:

namespace SeleniumFramework.Utils
{
    public static class PageUtils
    {
        public static Func<IWebDriver, bool> TestCondition(this ExpectedConditions expectedConditions, By locator)
        {
            // do stuff here
        }
    }
}

然后,我尝试调用这个扩展方法:

using SeleniumFramework.Utils;
using OpenQA.Selenium.Support.UI;
using OpenQA.Selenium;

namespace PageObjects
{
    public class Page1
    {
        public void Complete()
        {
           Browser.Wait.Until(ExpectedConditions.TestCondition(
           By.CssSelector("[ng-cloak]")));
           // do more stuff
        }
    }
}

但是,这 编译,因为无法识别扩展方法。 这可能是什么原因?是否有同样干净的替代方案来添加更多自定义 ExpectedConditions?

我认为你可以从 Selenide 项目中做这样的事情:https://github.com/codeborne/selenide/blob/master/src/main/java/com/codeborne/selenide/conditions/Text.java

我添加了一个 class MyConditions,它的工作方式与 ExpectedConditions class.

所以我可以写出像Browser.Wait.Until(MyConditions.ElementIs(...))这样的代码。