簡體   English   中英

量角器-頁面對象:失敗:不是函數

[英]Protractor - Page object: Failed: is not a function

我正在使用量角器,並創建了一個頁面對象。

這是我的頁面對象:

'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函數的新實例,以訪問該函數內部的所有方法。

導出頁面模塊的對象。exports= new CreateAgent(); 即使您不使用它,也不是最佳做法,因為它仍然存在(示例-執行其他測試規范時)

最佳方法:僅導出對象功能模塊。exports= CreateAgent; 並在需要該頁面對象的Spec()上創建一個對象。 請遵循以下代碼:

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


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

  beforeAll(function(){
  //create an object for page
  createAgenPageObj=new createAgent ();

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

   });
})

在您的spec文件中創建一個實例。

例如:

var createAgent = new CreateAgent();

並使用以下功能:

createAgent.addEmail();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM