una tipos sirve que pasar parametros para funciones funcion desde codigos anonimas anidadas javascript automation protractor pageobjects

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.