我正在寻找一种在selenium(C#)中使用<div style="width:100%; background-color:#ACD13C; padding:50px 0; ">
<table style="margin:0 auto;" bgcolor="white" width="500" cellpadding="0" cellspacing="0">
<tr>
<td>Text goes here</td>
</tr>
</table>
</div>
的方法,但是对于现有元素。那样:
wait.until
现在,我想将wait.until用于上面的元素。 我能以任何方式做到这一点吗? 谢谢 参见Yaniv
答案 0 :(得分:1)
您可以创建一个抽象页面对象作为页面对象的父对象,并从构造函数中调用一个抽象方法,该方法在子页面中实现:
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()
。由于它是抽象的,因此子类中的方法将被执行。