Tengo un código que intenta capturar elementos dentro de un iframe, pero sigo recibiendo un error.
it('Send Medication',function(){ cy.get('.aut-iframe') .should(iframe => expect(iframe.contents().find('body')).to.exist) .then(iframe => cy.wrap(iframe.contents().find('body'))) .within({}, $iframe => { cy.get('.pending-medication-check-box').click({force:true})Este es el error que me sale:
Por último, esta es la información del iframe:
Supongo que solo faltan reintentos para obtener el iframe hasta que se cargue el cuerpo. El simple combo get and should no espera a que esto suceda. Los documentos oficiales indican que debe usar .its('body') cuando trabaje con iframes, así que intente algo como esto:
cy.get('.aut-iframe').its('body').then((body) => { cy.wrap(body).should('...') }Referencia: https://www.cypress.io/blog/2020/02/12/working-with-iframes-in-cypress/#header
Instale el complemento cypress-iframe .
Después de la instalación, escriba import 'cypress-iframe'; bajo cypress/support/commands.js
Entonces, finalmente, su código debería verse así:
cy.frameLoaded('.aut-iframe') cy.iframe('.aut-iframe') .find('.pending-medication-check-box') .should('be.visible') .click()