[英]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.