Protractor 如何使用页面对象创建可重用组件

Protractor 如何使用页面对象创建可重用组件,protractor,pageobjects,Protractor,Pageobjects,我有一个文本框微调器控件和一些针对它的验证 此文本框微调器控件用于n个页面,在这些页面中,我需要检查相同的验证 所以我想创建一个spinnertextbox.js页面,并在其他页面中调用它。 所以我的困惑是如何从测试规范文件访问这个spinnertextbox.js 测试规范->页面->spinnertextbox.js var spinner = require('../pages/ spinnertextbox.js'); var home = function () { var upAr

我有一个文本框微调器控件和一些针对它的验证

此文本框微调器控件用于n个页面,在这些页面中,我需要检查相同的验证

所以我想创建一个spinnertextbox.js页面,并在其他页面中调用它。 所以我的困惑是如何从测试规范文件访问这个spinnertextbox.js

测试规范->页面->spinnertextbox.js

var spinner = require('../pages/ spinnertextbox.js');
var home = function () {

var upArrow = element(by.xpath('’));


var downArrow = element(by.xpath(''));


this.spinfn = function (fun) {

    var spin = new spinner();

    switch (fun) {

        case 'uparrowclick':
            spin.Up(upArrowt);
            break;
        case 'downarrowclick':
            spin.Down(downArrow);
            break;
    }

};

};

module.exports = home;
我是否直接从Testspec调用spinnertextbox.js,我觉得这是错误的。 我试着按照测试规范的流程从页面到页面,从页面到spinnertextbox.js

下面是我已经实现的

Spinnertextbox.js`

var txtbox = function () {


this.Up = function (upArrow) {
    upArrow.click();
};


this.Down = function (downArrow) {
    downArrow.click();
};
};

module.exports =  txtbox;
Homepage.js–它将调用spinnertextbox.js

var spinner = require('../pages/ spinnertextbox.js');
var home = function () {

var upArrow = element(by.xpath('’));


var downArrow = element(by.xpath(''));


this.spinfn = function (fun) {

    var spin = new spinner();

    switch (fun) {

        case 'uparrowclick':
            spin.Up(upArrowt);
            break;
        case 'downarrowclick':
            spin.Down(downArrow);
            break;
    }

};

};

module.exports = home;
最后是我的测试规范

Home.spec.js

var home = require('../pages/HomePage.js');

describe('reusability functionality : ', function () {


    it('reusability: ', function () {

        var hm = new home ();

//call to some other function in home page then 

        hm.spinfn('txtclick');
        d hm isplaySrc.spinfn('uparrowclick');
        hm.spinfn('downarrowclick');



    });


});
这种方法可以接受吗?或者我完全走错了方向