Saltar al contenido

¿Hay alguna forma de establecer propiedades CSS como `display` usando los comandos de Cypress?

Nuestros mejores investigadores han agotado sus reservas de café, por su búsqueda día y noche por la solución, hasta que Angélica encontró la contestación en Gogs y hoy la compartimos con nosotros.

Solución:

Esto parece funcionar amigos. Yo creo initial !important es una referencia de algún tipo y no un valor real y tal vez por eso .css() no funcionaría

Cypress.Commands.add('hideHubSpot', () => {
    cy.get('#hubspot-messages-iframe-container')
        .invoke('attr', 'style', 'display: none')
        .should('have.attr', 'style', 'display: none')

Si lo que busca es CSS, probablemente debería usar estilo en lugar de attribute.

No estoy seguro de cómo funciona el ciprés, pero puedo suponer que es algo como esto:

cy.get('#hubspot-messages-iframe-container > iframe')
.invoke('style', 'display', 'none! important')
.should('have.style', 'display', 'none !important')

Que debido a que la pantalla no es un attributees una propiedad CSS que debería estar dentro de un estilo attribute.

En caso de que esto no funcione, tal vez algo como esto podría:

cy.get('#hubspot-messages-iframe-container > iframe')
.invoke('attr', 'style', 'display: none! important')
.should('have.attr', 'style', 'display: none !important')

Puedes invocar el css función de jQuery usando invoke para cambiar el CSS. Tenga en cuenta que su !important no funcionará, pero no lo necesita, ya que configurar CSS a través de Javascript anulará cualquier otro estilo en el elemento.

Entonces solo puedes usar el have.css aserción de la lista de aserciones para verificar, si es necesario.

Así es como se vería:

cy.get('#hubspot-messages-iframe-container > iframe')
  // use the .css function from jquery, since Cypress yields jquery elements
  .invoke('css', 'display', 'none')
  .should('have.css', 'display', 'none')

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *