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

本文关键字:用于 一起 元素 Selenium Wait Until | 更新日期: 2023-09-27 18:29:44

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

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

现在,我想对上面的元素使用wait.until。我有办法做到吗?谢谢Yaniv

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

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

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()将在子页中的元素初始化之前从父构造函数调用。由于它是抽象的,子类中的方法将被执行。