我需要在每个"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
,但这对我有用:
restartBrowserBetweenTests: true
test.spec.js中的修改beforeEach
和afterEach
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();
});