当前位置: 首页 > 知识库问答 >
问题:

有没有什么优化方法来创建页面对象?

李鸿
2023-03-14

我正在使用一个页面对象模型来实现我的自动化,我正在测试类中创建一个页面对象,如下所示。(只是一个示例代码)

public class Test1 extends TestBase {
Page1 page1;
Page2 page2;
Page3 page3;
// and continues as number of pages increases

@BeforeTest
public void initialise() {
    this.page1 = new Page1(this);
    this.page2 = new Page2(this);
    this.page3 = new Page3(this);
    // and continues as number of pages increases
}

@Test
public void firstTest() {
    // my test script starts here
}
}

但是随着我的页面数量的增加,在测试类中创建页面对象的数量也会增加。我想知道是否有任何其他优化方法来创建页面对象或任何我正在做的是好的?

共有1个答案

羊禄
2023-03-14

是的。有。

创建一个从TestBase扩展的Page类

public class Pages extends TestBase {

  public Pages(){
    System.out.println("Pages constructor invoked")
    //PageFactory can be configured here or in TestBase
  }

  public HomePage getHomePageObj()
      return new HomePage();

//and so on all the pages object should be created here. 

}

TestBase中声明pages()方法,如下所示:

public class TestBase {
  
  public Pages pages(){
    return new Pages()
}
    @Test
    public void firstTest() {
     pages().getHomePageObj(). any method from HomePage class can be called here. 
     // my test script starts here
    }
 类似资料:
  • 今天我开始玩分支,检查两个布尔值。我很确定,在某些优化级别上,它们将简单地添加并检查,但gcc和CLANG不是这样。为什么gcc不优化两个bool检查,用addition和一个check替换它们?让我给你看一个例子: 两个分支(test+je)不应该比加法和分支(add+jne)慢吗? 编辑:我真正的意思是乘法,因为在true和false的情况下(1+0),加法给出true(1),但乘法给出正确的

  • 我最近在springboot和flyway一起工作,我有这样一个问题。为什么flyway没有创建数据库?我刚刚在我的build.gradle中添加了一个flyway依赖项,现在看起来是这样的。 我这样配置数据源: 这里是我的Hibernate。属性: 和迁移文件,位于resources/db/migration中: 有什么问题?是否应该在Application.Properties中配置datas

  • 我试着在Firebase Analytics中吸引观众,将“app version”设置为“contains‘debug’”。我的应用程序的调试版本在版本名字符串的末尾追加“-debug”。 但是,当我运行应用程序时,虽然Firebase为我的会话记录数据,但它没有为“调试观众”记录任何数据。 是否有一种方法来创建开发人员构建的受众,不管是通过版本名,还是任何其他方法? 谢谢!

  • 问题内容: 众所周知,Java总是在创建时初始化数组。即总是返回一个所有元素= 0的数组。我知道这对于对象数组是必须的,但是对于原始数组(可能是布尔型),在大多数情况下,我们并不关心初始值。 有人知道避免这种初始化的方法吗? 问题答案: 我已经做了一些调查。没有合法的方法在Java中创建未初始化的数组。甚至JNI NewXxxArray也会创建初始化的数组。因此,不可能确切知道数组清零的成本。尽管

  • 问题内容: 似乎有很多方法可以在Python中定义单例。关于堆栈溢出是否有共识? 问题答案: 我没有真正的需要,因为具有功能(而不是类)的模块可以很好地用作单例。它的所有变量都将绑定到模块,该模块无论如何都无法重复实例化。 如果您确实希望使用类,则无法在Python中创建私有类或私有构造函数,因此,您只能通过使用API​​的约定来保护自己免受多重实例化。我仍然将方法放在模块中,并将模块视为单例。