【发布时间】:2020-02-27 19:56:32
【问题描述】:
使用页面对象模式,我为每个页面创建了一个类。然后我意识到有些页面有类似的 css 类,我重复了太多代码。 例子: BasePage = 从他那里继承的所有页面(设置驱动程序和等待的地方) Page1, Page2, Page3 = 它们都有相似的属性,所以我将它们归为一个类,称为 公共页面
利用commonPage中pageObjetcs的良好做法,我将其他3个页面分为了(这样它们可以保持更小):CommonPage_Header、CommonPage_Menu和CommonPage_List。
问题是,例如page1 不能从CommonPage_Header、CommonPage_Menu 和CommonPage_Header 继承。我该如何处理这种情况?我已经尝试过使用抽象类和接口。
我需要的是每个页面都继承自 commonPage_Header、commonPage_Menu 和 commonPage_List 以及它们的任何特定属性
注意:其中一些“特定属性”是带有主体的方法,这就是我不打算使用接口的原因
public class BasePage(){
//browsers and timeouts
}
public abstract class CommonPage_Header extends BasePage {
public PanelHeader(WebDriver driver) {
super(driver);
}
//similar methods
}
public class Page1 extends CommonPage_Header {
//overwriting some methods of CommonPage_Header, but setting some specification for the page 1
//The problem: I need to use methods of CommonPage_Menu and CommonPage_List too :(
}```
【问题讨论】:
标签: java selenium testng pageobjects