量角器"restartBrowserBetweenTests: true"重新启动浏览器,但在此之后不要运行测试



我需要在每个"it"(测试)之后重新启动浏览器,因此我在量角器中写入"restartBrowserBetweenTests: true"。配置文件。现在,在第一个"它"(测试)完成后,浏览器关闭并再次打开(打开我在"beforeEach"中写的网站,但下一个"它"(测试)没有运行。

我做错了什么?我很乐意听取任何建议。

我用"protractor": "2.5.1".

谢谢!

补充道:

beforeEach(function () {
    browserUtil.navigateTo(browserUtil.url.main); 
    loginPage.loginAsSample();
});
afterEach(function(){
    browserUtil.deleteCookies();
});
it("'Delete' button is inactive if there are no projects in the list", function() {
    projectPage.clickOnProjectButton();
    expect(projectPage.isProjectPageFormVisibility(true)).toBe(true);
    expect(projectPage.isDeleteBtnDisable()).toBe(true);
});
it("Create new project with template 'A'", function() {
    projectPage.clickOnNewProjectBtn();
    projectPage.clickOnAProject();
    projectPage.clickOnOkBtnProject();
    expect(projectPage.isOpenedProjectVisibility(true)).toBe(true);
});

我从来没有使用过restartBrowserBetweenTests: true,但这对我有用:

在protractor.conf中删除restartBrowserBetweenTests: true test.spec.js中的

修改beforeEachafterEach

beforeEach(function () {
    browser.get(browserUtil.url.main);
});
afterEach(function () {
    browser.manage().deleteAllCookies();
});

由于您正在使用页面对象结构进行测试,您可能/将希望将browser.get(browser.browserUtil.url.main);封装到您的页面对象中。

在定义ProjectPage的地方,我会添加:

this.refreshPage = function () {
     browser.get(browserUtil.url.main);
};

如果您采用这种方法,您将更改对beforeEach的调用为:

beforeEach(function () {
    projectPage.refresh();
});

最新更新