javascript - tipos - Transportador-Objeto de página: Fallido: no es una función
pasar parametros a una funcion javascript desde html (3)
Crea una instancia en tu archivo de especificaciones.
Por ejemplo:
var createAgent = new CreateAgent();
Y acceda a funciones usando:
createAgent.addEmail();
Estoy trabajando con Protractor y creo un objeto de página.
Este es mi objeto de página:
''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;
Estas funciones están llamando en una especificación
Aquí está la especificación:
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(''[email protected]'');
browser.sleep(3000);
createAgent.selectRole(''ccp agent manage'');
browser.sleep(3000);
createAgent.saveAgent();
browser.sleep(7000);
});
});
pero cuando ejecuto mi prueba me está dando un error:
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
No estoy seguro de si falta algo en el objeto de la página o en otro lugar.
Espero que me puedas ayudar y gracias.
Exportación de un objeto de la página module.exports = new CreateAgent (); NO es una buena práctica como un objeto vivo incluso si no lo usa (ejemplo: al ejecutar otras especificaciones de prueba)
LA MEJOR MANERA ES: Exportar solo la función Objeto module.exports = CreateAgent; y crea un objeto en Spec () donde necesitas ese objeto de página. Siga el siguiente código:
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(){
});
})
cambiar module.exports = CreateAgent;
a module.exports = new CreateAgent();
. Necesita crear una nueva instancia de la función CreateAgent para acceder a todos los métodos dentro de la función.