我正在尝试改善我的测试框架,并避免我的许多班级之间出现太多的依赖关系。这是用于测试自动化。我有一个名为WebDriverSupport的类,其中大多数包含硒webdriver方法,例如-Click(),entertext ...
我有使用这些方法的各种页面对象类,但我不想继承该类。我当前的实现是-
public class WebDriverSupport{
public void ClickElement(IWebElement element){element.Click()}}
然后有一个页面对象类,比如说Homepage-
public class HomePage{
private WebDriverSupport Support{get;set;} = new WebDriverSupport();
public void ClickOnThatElement(){
Support.ClickElement(Element)}
我的问题是,有没有一种更好的方法来实现我的webdriversupport类而无需主页继承该类或像上面那样实例化该类?
谢谢
答案 0 :(得分:1)
您可以使用static
创建一个Extensions
类
public static class WebElementSupport
{
public static void ClickElement(this IWebElement element)
{
//implementation
}
}
,然后仅using
带扩展名的类使用它
using Namespace.With.Extension.WebElementSupport;
public class HomePage
{
public void ClickOnThatElement()
{
Element.ClickElement();
}
}