如何将Wait.Until与Selenium C#一起用于现有元素

我正在寻找一种在selenium(C#)中使用wait.until的方法,但是对于现有元素。 那样:

 [FindsBy(How = How.Id, Using = "SomeID")] public IWebElement SearchButton { get; set; } 

现在,我想将wait.until用于上面的元素。 我能以任何方式做到这一点吗? 谢谢Yaniv

您可以创建一个抽象页面对象作为页面对象的父对象,并从构造函数中调用一个抽象方法,该方法在子页面中实现:

 public abstract class AbstractPage { protected AbstractPage() { WaitUntilExist(); } protected abstract void WaitUntilExist(); } public class MyPage : AbstractPage { [FindsBy(How = How.Id, Using = "SomeID")] private IWebElement SearchButton; public MyPage() { } protected override void WaitUntilExist() { wait.Until(ExpectedConditions.ElementExists(By.Id("SomeID"))); } } 

在子页面中的元素初始化之前,将从父构造函数调用WaitUntilExist()方法。 由于它是抽象的,因此子类中的方法将被执行。