我想爲我的Selenium項目添加一些自定義ExpectedConditions。 擴展方法看起來是最簡單的方法。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?
擴展方法需要一個對象;你不能用靜態afaik來擴展。畢竟你在函數中的第一個參數是一個對象。 – Nyerguds
如果它是一個工具集,無論如何都沒有真正的理由把它靜態地放在_that_類上。刪除'this'參數並將其用作'PageUtils.TestCondition()' – Nyerguds