问题描述
我有 4 个页面对象类来表示 4 个操作页面。每个页面都包含类似的表格,其中一些具有额外的组件,如额外的按钮。
目前我面临着“大班级”来处理表格的不同变化。
我的条件是简单地检查 URL,然后继续对该页面的表格执行操作。
目标:我想弄清楚我应该如何重构我的代码,以便当我点击任一页面时我可以处理表格,而一个类中没有这么多页面对象,并且如果条件重复代码。>
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 (将#修改为@)