【发布时间】:2017-01-19 03:14:48
【问题描述】:
我正在为一个简单的应用程序编写一个自动化框架,我有几个页面的问题,我应该使用继承还是应该使用组合。我很想和你讨论这个问题。
1.我有一个抽象页面,每个页面都必须继承。现在这个页面有很多等待方法,我想把它们放在页面之外。我应该为此使用继承吗?我的意思是我应该创建一个等待类并在 Page 类中继承它还是应该使用组合。 公共类waitTool { //所有等待方法 }
public abstract class Page waitTool{
//In case of this waitTool is abstract
}
I
public abstract class Page {
protected WaitTool waitTool;
}
public class LoginPage extends Page {
}
2.Application 有一个所有页面通用的菜单栏。我应该为菜单栏创建一个单独的页面,然后在页面中继承它吗?在这里,请认为我可能还需要从上面继承 waitTool 类。或者我应该将此 menuBar 创建为导航类。我的意思是,这个类包含生成每个页面的 PageObject 的函数。
public class TopMenu extends Page{
By homeLink = By.cssSelector("a[ui-sref='home']");
public TopMenu(WebDriver driver) {
super(driver);
}
public void gotoHomePage(){
}
}
【问题讨论】:
-
为什么有这么多等待方法?有哪些等待方法的例子?它们与页面上的内容或通用等待方法有关吗?与给定页面有关的任何内容都应该在该页面类中。对于菜单栏,一个不同的类是有意义的。
标签: selenium inheritance webdriver composition pageobjects