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