对于量角器规范

时间:2017-09-09 02:07:03

标签: angularjs selenium coffeescript protractor

假设我在以下文件夹中订购了我的页面对象文件:

pages
    modals
        modal-1.coffee
        modal-2.coffee
    panels
        panel-1.coffee
        panel-2.coffee
        subpanels
            subpanel-1.coffee
            subpanel-2.coffee
    mainPage.coffee

截至目前,我要求每个页面对象单独位于我的spec文件顶部,如下所示:

{Modal1} = require <path to modal-1>
...
{MainPage} = require <path to mainPage>

但是,我希望能够按照以下方式拨打一个电话:

Pages = require <path to pages dir>

我找到了this SA questionthis blog post。但是我在读取页面对象时遇到错误(使用index.coffee文件中的console.log语句确认),其成员函数无法访问:

Pages.MainPage is not a function
Cannot read property 'getSomething' of undefined

所以我的问题是 - 当我将它们作为单个模块页面导出时,如何访问页面对象的成员函数?

任何见解都会非常感激!

1 个答案:

答案 0 :(得分:0)

我不熟悉coffeescript,但在JS中你可以尝试重新导出 index.js

pages
    modals
        modal-1.coffee
        modal-2.coffee
    panels
        panel-1.coffee
        panel-2.coffee
        subpanels
            subpanel-1.coffee
            subpanel-2.coffee
    mainPage.coffee
    index.coffee (?)
索引文件中的

module.exports.modal-1 = require('modals/modal-1.coffee')
module.exports.modal-2 = require('modals/modal-2.coffee')
module.exports.panel-1 = require('panels/panel-1.coffee')
module.exports.mainPage = require('./mainPage.coffee')
// and so on

所以在规格中它会是 -

let {modal-1, modal-2, mainPage} = require('pages')

https://nodejs.org/api/modules.html#modules_folders_as_modules

  

如果目录中没有package.json文件,那么   Node.js将尝试加载index.js