Cypress.Commands.add('Login', (env,username) => { env(staging) = cy.visit('LINK') env(live) = cy.visit('LINK') username(practitioner1) = { cy.get('input[name="Parameter.UserName"]').type('practitioner1') cy.get('input[name="Parameter.Password"]').type('pass') } cy.contains('Login').click() })No sé por qué tengo el error ',' esperado ts(1005)
Quiero llamar desde otro archivo a algo como cy.Login(staging,practitioner1) , o cy.Login(live,practitioner2) para no tener que codificar el enlace, el nombre de usuario y la contraseña cada vez. Aquí hay una pantalla de impresión con errores: pasteboard.co/0bYOL4Dx7mnE.png
Sugeriría lo siguiente:
Cypress.Commands.add('login', (env, user) => { const practitionerUser1 = { username: 'foo', password: 'myPasswordFoo#'}; const practitionerUser2 = { username: 'zoo', password: 'myPasswordZoo#'}; env = 'staging' ? cy.visit('staging_link') : cy.visit('production_link') user = 'practitionerUser1' ? (cy.get('input[name="email"]').type(practitionerUser1.username), cy.get('input[name="password"]').type(practitionerUser1.password)) : (cy.get('input[name="email"]').type(practitionerUser2.username), cy.get('input[name="password"]').type(practitionerUser2.password)); cy.contains('login').click() });y úsalo en tus pruebas como:
cy.login('staging', 'practitionerUser1');PD Debido a que el comando anterior interactúa con la interfaz de usuario, por razones de rendimiento, sugeriría acciones como iniciar sesión para usar solicitudes de API. Es más robusto y fiable con el tiempo ;)
cypress.json y agregue todos sus enlaces allí. { //Other cypress.json elements "env": { "staging": "www.staging.com", "live": "www.live.com" } }support/commands.js agregue el comando personalizado Cypress.Commands.add('Login', (environment, username, password) => { cy.visit(Cypress.env(environment)) cy.get('input[name="Parameter.UserName"]').type(username) cy.get('input[name="Parameter.Password"]').type(password) cy.contains('Login').click() }) cy.Login('staging', 'username', 'password')