javascript - Protractor - 页面对象 : Failed: is not a function

标签 javascript automation protractor pageobjects

我正在使用 Protractor 并创建一个页面对象。

这是我的页面对象:

'use strict';

var CreateAgent = function () {
this.agentEmail = element(by.model('agent.email'));
this.janrainConsoleAgent = by.xpath(".//*[@value='ccp_agent']");
this.janrainConsoleAgentManager = by.xpath(".//* .[@value='ccp_agent_manager']");
this.saveButton = by.className('md-primary md-raised md-button md-ink-ripple');

this.addEmail = function(email){
    this.agentEmail.sendKeys(email);
};

this.selectRole = function(role){
    switch(role){
        case 'ccp agent':
            this.janrainConsoleAgent.click();
        case 'ccp agent manager':
            this.janrainConsoleAgentManager.click();
        default:
            break;
    }
};

this.saveAgent = function(){
    this.saveButton.click();
};
};
module.exports = CreateAgent;

这个函数在规范中调用

这是规范:

var createAgent = require('../page/create_agent_page');

 describe('Protractor Demo Janrain - Create Agent', function(){

    it('should fill out information to create agent', function(){

      createAgent.addEmail('jburquez+auto001@janrain.com');
      browser.sleep(3000);
      createAgent.selectRole('ccp agent manage');
      browser.sleep(3000);
      createAgent.saveAgent();
      browser.sleep(7000);

   });
});

但是当我执行测试时出现错误:

Failures:
1) Protractor Demo Janrain - Create Agent should fill out information  to create agent
Message:
  Failed: createAgent.addEmail is not a function
Stack:
  TypeError: createAgent.addEmail is not a function

我不确定页面对象或其他地方是否缺少某些内容。

希望你能帮助我,谢谢。

最佳答案

module.exports = CreateAgent; 更改为 module.exports = new CreateAgent();。您需要创建一个新的 CreateAgent 函数实例以访问该函数内的所有方法。

关于javascript - Protractor - 页面对象 : Failed: is not a function,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42985803/

相关文章:

javascript - onError 在浏览器之间表现不同

azure Automation powershell runbook,用于获取 CSV 文件中的 VM 详细信息并将该 CSV 文件导出到 azure blob 存储,有人可以帮忙吗?

windows - 有没有办法自动更改 <link> , &lt;script&gt; 标签中的文件名

angularjs - 如何让 Protractor 接受浏览器本地摄像头

javascript - 在 _onRefresh 中使用 AsyncStorage?

javascript - 使用 droidscript 保存 Canvas 图像

javascript - 如何从全局变量正确填充 javascript 对象

javascript - 检查元素是否未显示 - WebDriverJS

javascript - 从下拉列表中单击后 Protractor 不会转到下一行

angularjs - 升级到 Angular 2 后 Protractor 测试停止工作