使用Java Selenium SlowLoadableComponent的类结构

时间:2015-08-10 13:02:44

标签: java selenium pageobjects

我正在使用Selenium及其PageFactory设计应用程序。

我的每个页面对象类都继承自带有标准方法的基类,但我也有一些需要SlowLoadableComponent的页面。由于这是作为一个抽象类实现的,我不能扩展它和我的基页类。

使我的基页类扩展SlowLoadableComponent有什么缺点吗?如果是这样,你会将基页类实现为具有默认方法或其他东西的接口吗?

1 个答案:

答案 0 :(得分:1)

如果只有multiple inheritance ...

Java中多重继承的解决方法是delegation

所以你可以重构代码看起来像这样:

public interface IBasePage {
  //... unimplemented base page methods
}

public class BasePageImpl implements IBasePage {
  public BasePageImpl(WebDriver webDriver) { //... }
  //... implemented base page methods
}

public class FastPage implements IBasePage {
  //... delegate all base page methods to the BasePageImpl
}

public class SlowPage extends SlowLoadableComponent implements IBasePage {
  //... delegate all base page methods to the BasePageImpl
}