页面对象类都共享类似的网络表格,但某些页面上的表格有几个额外的组件我应该如何解决这个问题?

问题描述

我有 4 个页面对象类来表示 4 个操作页面。每个页面都包含类似的表格,其中一些具有额外的组件,如额外的按钮。

目前我面临着“大班级”来处理表格的不同变化。

我的条件是简单地检查 URL,然后继续对该页面的表格执行操作。

目标:我想弄清楚我应该如何重构我的代码,以便当我点击任一页面时我可以处理表格,而一个类中没有这么多页面对象,并且如果条件重复代码。>

示例: 3 个页面使用包含一个额外按钮的表 1

1 页使用没有额外按钮的表 2

public class Table
{

    public readonly TableMap Map;
    public class Table()
    {
        Map = new TableMap();
    }
  
    public void OpenDoc()
    {
        var pageCurrentUrl = Driver.Url;
        switch(pageCurrentUrl)
        {
 
            case URLOne:
            case URLTwo:
            case URLThree:
               //open doc within table 1
               break;
            case URLFour:
               //open doc within table 2
               break;
        }
    }
}   

public class TableMap
{
    //table for three pages
    public class IWebElement ButtonOneTable1 => Driver.FindElement(By.CssSelector("element"));
    public class IWebElement ButtonTwoTable1 => Driver.FindElement(By.CssSelector("element"));
    public class IWebElement RowsTable1 => Driver.FindElement(By.CssSelector("element"));
    public class IWebElement ColumnsTable1 => Driver.FindElement(By.CssSelector("element"));
    
    //table for 1 page
    public class IWebElement ButtonOneTable2 => Driver.FindElement(By.CssSelector("element"));
    public class IWebElement RowsTable2 => Driver.FindElement(By.CssSelector("element"));
    public class IWebElement ColumnsTable2 => Driver.FindElement(By.CssSelector("element"));

}

基本上,我可以访问此类中的许多页面对象,并且我在想要重构的 switch 语句中有重复的代码

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)