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(...))
这样的代码。
我想向我的 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(...))
这样的代码。