文件结构
01.spec.js - - -我称之为从量角器规格佣工这是罚款
describe('should click on element', function () {
var helper1 = require('../../modules/helpers/helper1.js');
it('should click and assert...', function() {
helper1.clickOnCircle('Accounts');
});
});
...但使用任何辅助功能从另一个帮手文件...
helpers1.js - - -我有权要求在每一个功能助手
module.exports = {
clickOnCircle: clickOnCircle,
clickOnBox : clickOnBox
};
var helper2 = require('./helper2.js'); //node require doesn't hit something like this
function clickOnCircle(circleText) {
var helper2 = require('./helper2.js'); //needed in every function
helper2.doSomething(circleText);
}
function clickOnBox(boxText) {
var helper2 = require('./helper2.js'); //needed in every function
helper2.doSomething(boxText);
}
这几乎就像我希望帮助文件是在全球上市。 我搞砸周围使用的配置参数,但我还是最终不得不要求从每个功能的帮手。
这里是我们如何使用我们的帮手和页面对象一个简单的例子。 我们有一个叫做helper.js文件和所有我们的页面对象在页面文件夹中。 我们正在使用的要求,所有的节点模块,以帮助我们包括我们所有的页面对象。
// Require all application pages
global.pages = require('require-all')(__dirname + '/../pages/');
global.EC = protractor.ExpectedConditions;
// Instantiate all pages in our applications, and make them globally available to the tests
//***** User/Nav Pages *****
global.loginPage = new pages.Navigation.LoginHomePage();
global.instructorHomePage = new pages.Navigation.InstructorHomePage();
global.studentHomePage = new pages.Navigation.StudentHomePage();
global.studentAccessPage = new pages.Misc.StudentAccessPage();
global.selfEnrollPage = new pages.User.SelfEnrollPage();
global.instructorNavPanelPage = new pages.Navigation.InstructorNavPanelPage();
global.studentNavPanelPage = new pages.Navigation.StudentNavPanelPage();
global.createInstructorPage = new pages.Admin.CreateInstructorPage();
global.addUserPage = new pages.User.AddUserPage();
那么这就是我们将如何有其中一个网页模板
var TemplatePage = function() {
//***** Buttons & Links *****
this.link = element(by.linkText('link'));
this.link2 = element(by.linkText('link2'));
//***** Input Fields *****
//***** Drop-Downs *****
//***** Check Boxes *****
//***** Page Elements *****
//***** Helpers *****
this.clickLink = function() {
return link.click(); };
};
module.exports = TemplatePage;
你可以在你的模块开始加载其他模块只有一次,然后从该模块中引用它们的任何地方。
这应该只是罚款:
// require in any other modules we need here
// modules are cached by the system
var helper2 = require('./helper2.js');
function clickOnCircle(circleText) {
helper2.doSomething(circleText);
}
function clickOnBox(boxText) {
helper2.doSomething(boxText);
}
module.exports = {
clickOnCircle: clickOnCircle,
clickOnBox : clickOnBox
};
有关使用继承什么,
例如:
function shapeModel() {
var helper = require('./helper2.js');
function clickOnCircle() {
return helper.doSomething(circleText);
}
function clickOnBox() {
return helper.doSomething(boxText);
}
return {
clickOnCircle: clickOnCircle(),
clickOnBox : clickOnBox()
}
}
module.exports = shapeModel
这也使得一类为您的模块中使用。 这地方的exports
在允许的页面的底部helper
变量保持在作用域为全局,而不是你的外作用域module.exports