如何将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
您可以创建一个抽象页面对象作为页面对象的父对象,并从构造函数中调用一个在子页面中实现的抽象方法:
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()
将在子页中的元素初始化之前从父构造函数调用。由于它是抽象的,子类中的方法将被执行。