Estoy tratando de navegar a una pantalla y he creado un script de automatización en Cypress usando Javascript para el mismo. El siguiente es el código -
describe("Login Test",function(){ it("Sign In", function(){ cy.visit("abc.com/login") cy.get('input[id = userName]').type('admin') cy.get('input[id = userPassword]').type('P@ssword01') cy.get('.btn-primary').should('be.visible').click() cy.contains('Home', { timeout: 10000 }).should('be.visible') }) it("User Management Test", function(){ cy.get('a[id = settings]').click() cy.contains('User Management').click({force:true},{timeout : 3000}) cy.contains('Manage Users').should('be.visible') }) })el caso de prueba de inicio de sesión funciona bien. Puedo hacer clic en la opción 'Configuración'. Cuando trato de hacer clic en la opción del submenú 'Administración de usuarios' en el menú desplegable de configuración, no funciona. Estoy agregando captura de pantalla de la aplicación y dom.
HTML de la aplicación
Pantalla de aplicación
Corredera de ciprés - antes
2 corredor de ciprés - después 
Si ve cuidadosamente, el método de clic no es hacer clic en 'Administración de usuarios', sino que 'Administración de usuarios' desaparece y ciprés hace clic en la pantalla debajo de él y, finalmente, la aplicación cierra la sesión sin presionar el enlace/botón de cerrar sesión. Lo he intentado de varias maneras, por ejemplo:
cy.contains('User Management').click({force:true},{timeout : 3000}) OR cy.contains('User Management').click({force:true}) OR cy.contains('User Management').click() OR cy.contains('User Management').should('be.visible').click() OR cy.contains('User Management').wait(3000).click()Solicito a la comunidad de Cypress que eche un vistazo y me ayude a resolver este problema. Gracias
Puede instalar cypress-real-events . Y luego agregue import "cypress-real-events/support"; en cypress/support/index.js . Y en tu prueba puedes:
it('User Management Test', function () { cy.get('a[id = settings]').realHover() cy.contains('User Management').realClick() cy.contains('Manage Users').should('be.visible') })El href del elemento de menú 'Administración de usuarios' es /posadmin/tigerge1/users y aparece muy abajo en el registro. Tal vez deberías esperarlo
it("User Management Test", function() { cy.intercept('POST', '**/posadmin/tigerge1/users/*').as('userManagement') cy.get('a[id = settings]').click() cy.contains('User Management').click({force:true}) cy.wait('@userManagement') cy.contains('Manage Users', {timeout: 10000}) // put the timeout here .should('be.visible') // and decrease it if it works }) La otra cosa a comprobar es la parte anterior de esa ruta. Muestra /api/auth/login , pero ¿es correcto? Debería estar navegando en el sitio principal cuando se hace clic en el enlace.
Ejecute los pasos manualmente en el navegador y vea si aparece la misma URL en la pestaña de red.
Si no es así, parece que el inicio de sesión no se está realizando correctamente.