如何在每种情况下在量角器中重新初始化页面对象?

时间:2019-03-04 13:36:38

标签: typescript protractor cucumber pageobjects

我将量角器与黄瓜和胰蛋白酶一起使用。我将所有页面对象都定义为类。在步骤定义中,我初始化需要的每个页面对象,并将其用于各种断言或操作。运行一种方案时,该安装程序工作正常。但是,如果我想运行更多方案,则需要找到一种方法来针对每个方案重新初始化页面对象,否则量角器将使用先前初始化的对象以及为第一个浏览器实例获取的元素,并且我将获得一个错误。

关于如何做到这一点的任何想法?我试图照顾github上的项目示例,但找不到任何能解决我问题的东西。

这是我设置中的一个小例子:

loginpage.po.ts:

export class LoginPage{
    ...     
    async login(username:string,password:string){
        await this.enteremail(username);
        await this.clickNext();
        await this.enterPass(password);
        await this.clickSignIn();
   ...
}
    }

common.steps.ts:

import { LoginPage} from '../pageobjects/loginPage.po';
...
var loginPage: LoginPage= new LoginPage();

Given('I have the URL ', async () => {
    await browser.get(config.baseUrl);
    await expect(loginPage.isAtSignIn()).to.eventually.be.true;
});

 Given ('I login', async () => {
     await loginPage.login(config.params.username, config.params.password);
 });

1 个答案:

答案 0 :(得分:0)

在您的规范文件中创建一个函数

initializePageObjects() {
var loginPage: LoginPage= new LoginPage();
}

现在,在您的beforeEach()中添加此函数,以便为每个it()初始化类。

beforeEach(){
await initializePageObjects();
}

希望它对您有帮助