Tuve un problema realmente difícil mientras escribía los guiones en Cypress. Hice clic en un elemento y se dirige a una nueva página. Quiero hacer clic en el siguiente elemento en la nueva página. Sé que Cypress no permite trabajar en una nueva ventana simultáneamente.
Así que traté de resolver con muchas soluciones disponibles en la web.
Recibí el mismo error de que no podía hacer clic en el elemento en la nueva pestaña. He adjuntado el cuerpo html de la pantalla. ¿Puede alguien ayudarme a resolver el problema?
The following was my code.. /// <reference types="cypress" /> describe('ship test',() =>{ it('first test',() =>{ cy.viewport(1120,800) cy.visit('url') cy.get('#LoginForm-login_authname').type('12345) cy.get('#LoginForm-login_authid').type('12345{enter}') cy.on('uncaught:exception', (err, runnable) => { return false }) cy.wait[cy.xpath('//span[normalize-space()="Work"]') .click({force: true})] cy.xpath('//*[@id="VTK-j_idt1184"]',{timeout : 700000}).click() cy .window().then((win) => { cy.spy(win, 'open').as('redirect'); }); cy .xpath('//a[@class="ui-commandlink ui-widget btn_wrapper pull-right createtask_btn"]',{timeout : 700000}) .click(); cy .get('@redirect') .should('be.calledWith', 'href', '/about'); }) })Se parece a esto
cy.xpath('//*[@id="VTK-j_idt1184"]',{timeout : 700000}).click()y esto
cy.xpath('//a[@class="ui-commandlink ui-widget btn_wrapper pull-right createtask_btn"]',{timeout : 700000}) .click();están tratando de hacer clic en el mismo enlace.
Prueba a quitar el primero. (debe hacer clic después de configurar el espía).
Para probar la nueva pestaña, lo más fácil es visitarla en una nueva prueba.
it('tests the about tab', () => { cy.visit('/about'); ...Nota
Si click() no funciona, puede que tenga más suerte probando .realClick() .
Ver Cypress Real Events escrito por Dmitriy Kovalenko (Ucrania).