Shadow DOM en Automatización de Pruebas con Cypress

Guía de Shadow DOM y pruebas con Cypress: diferencias entre abierto y cerrado, manejo de elementos slotted y estrategias para pruebas web más estables.

26 sept 2025 • 3 min de lectura • Equip Q2BSTUDIO

Inteligencia-Artificial-

Al probar aplicaciones web la estructura del DOM no siempre es tan directa como parece y el elemento que ves en DevTools puede no ser accesible para tu prueba porque está envuelto dentro de iframes o del Shadow DOM. En este artículo explico qué es el Shadow DOM por qué importa y cómo probarlo con Cypress.

Qué es Shadow DOM: Shadow DOM es una subrama encapsulada del DOM que vive dentro de un elemento host. Nació con la especificación de Web Components y se usa mucho en bibliotecas modernas de interfaz como Material UI Ionic Lit y componentes de Angular. Sus ventajas clave son que el CSS y el JS están aislados evitando fugas globales los componentes son reutilizables y la estructura queda oculta al DOM principal. Piensa en ello como un mini DOM dentro del DOM.

Beneficios principales: estilos y scripts scopeados sin fugas componentes reutilizables encapsulamiento que evita conflictos

Tipos de DOM y ejemplos: Normal DOM ejemplo <div id=login> <input id=username /> </div> con Cypress normalmente se haría cy.get(#username).type(hello)

Shadow DOM abierto ejemplo <my-login> #shadow-root (open) <input id=username /> </my-login> Opciones en Cypress: Opción A usar .shadow() cy.get(my-login).shadow().find(#username).type(hello) Opción B habilitarlo globalmente en cypress.config.js module.exports = { e2e: { includeShadowDom: true } }

Shadow DOM cerrado ejemplo <my-login> #shadow-root (closed) <input id=username /> </my-login> Los shadow roots cerrados no son accesibles con Cypress ni con selectores regulares porque están diseñados para ser privados. Como solución necesitarás pruebas a nivel de componente o que la aplicación exponga hooks para testing por ejemplo atributos o props.

Elementos slotted: a veces los elementos se proyectan dentro de un shadow DOM mediante slot ejemplo <my-login> #shadow-root (open) <slot name=email></slot> </my-login> fuera del componente <input slot=email id=email-input /> Para acceder a contenido slotted suele ser necesario tomar los nodos asignados del slot. Una implementación típica en Cypress podría definirse como un comando personalizado sin comillas por ejemplo Cypress.Commands.add(getSlottedElement selector => { return cy.get(selector).then($el => { return cy.wrap($el[0].assignedNodes()[0]) }) }) y usarlo como cy.getSlottedElement(#email-input).type(hello@qa.com)

Por qué el Shadow DOM importa en automatización: está presente en muchas SPA y Web Components tus pruebas pueden fallar con elemento no encontrado a menos que tengas en cuenta el Shadow DOM manejarlo correctamente hace las pruebas más estables y a prueba de futuro

Resumen práctico: el DOM no siempre significa elementos siempre accesibles. Las aplicaciones web pueden incluir DOM plano iframes Shadow DOM abierto o cerrado. Cypress soporta Shadow DOM abierto con .shadow() o con la propiedad includeShadowDom en la configuración. Para elementos slotted puede que necesites helpers personalizados y .shadow() no ve contenido slotted directamente porque ese contenido vive fuera del shadow root y se proyecta dentro. Para shadow DOM cerrado conviene colaborar con desarrolladores para añadir hooks de test.

Consejos para quien empieza en automatización: comienza experimentando con Cypress y un componente web sencillo para entender por qué manejar Shadow DOM es una habilidad imprescindible.

Sobre Q2BSTUDIO: en Q2BSTUDIO somos una empresa de desarrollo de software y aplicaciones a medida especializada en soluciones empresariales que abarcan software a medida, inteligencia artificial, ciberseguridad y servicios cloud. Ofrecemos desde desarrollo de aplicaciones personalizadas hasta servicios de seguridad y análisis de datos. Si buscas crear aplicaciones a medida visita Desarrollo de aplicaciones y software a medida y si necesitas infraestructura gestionada y migración en la nube revisa nuestros servicios cloud aws y azure. También trabajamos con servicios de inteligencia de negocio power bi ia para empresas agentes IA y ciberseguridad ofreciendo integraciones a medida y soluciones de automatización de procesos.

Si tu proyecto necesita pruebas robustas para componentes web o quieres que integremos buenas prácticas de testing con Cypress en una solución de software a medida contacta con Q2BSTUDIO para diseñar una estrategia que incluya testing componentes encapsulados seguridad y despliegue en cloud.

UNA PAUSA?

Juga una estona abans de marxar

ELS NOSTRES SERVEIS

Com et podem ajudar

Intel·ligència artificial

Agents d'IA, chatbots i assistents intel·ligents que automatitzen tasques i atenen els teus clients 24/7 per millorar l'eficiència del teu negoci.

Més info

Desenvolupament de programari

Aplicacions web, mòbils i d'escriptori, intranets, e-commerce, SaaS i plataformes de gestió dissenyades per a les necessitats concretes de la teva empresa.

Més info

Serveis cloud

Migració, infraestructura, hosting gestionat, alta disponibilitat i seguretat en Microsoft Azure i Amazon Web Services perquè el teu negoci escali sense límits.

Més info

Ciberseguretat i pentesting

Auditories de seguretat, test d'intrusió (pentesting) i protecció d'aplicacions, dades i infraestructura on-premise i cloud, amb hacking ètic i compliment normatiu.

Més info

Business Intelligence

Quadres de comandament i anàlisi de dades amb Power BI: integrem les teves fonts, dissenyem dashboards i KPIs i convertim les teves dades en decisions.

Més info

Automatització de processos

Automatitzem tasques repetitives i connectem les teves aplicacions amb n8n, Power Automate, Make i RPA, eliminant treball manual i augmentant la productivitat.

Més info

Formació per a empreses

Formem els teus equips en tecnologia amb criteri: desenvolupament web, bases de dades, Git, bones pràctiques i seguretat, automatització amb n8n, intel·ligència artificial per a empreses i creació de solucions d'IA amb Azure AI Foundry.

Més info

Auditoria de codi

Auditem el codi que creguis tu, el teu equip o una IA: et diem què està bé i què millorar, el securitzem i el deixem llest per a producció, web o app.

Més info

Generació d'imatges amb IA

Creem per tu les imatges que necessita el teu negoci amb intel·ligència artificial: producte, xarxes, publicitat, il·lustració i avatars. Tu ens dius què vols i t'ho lliurem llest per fer servir.

Més info

Generació de vídeos amb IA

Creem per tu vídeos amb intel·ligència artificial: promocionals, per a xarxes, presentadors virtuals, doblatge i animacions. Ens comptes la idea i t'ho lliurem muntat i llest per publicar.

Més info

Avatars conversacionals amb IA

Creem avatars conversacionals amb IA —humans digitals amb cara i veu— que atenen els teus clients i equips amb el coneixement de la teva empresa, a la teva web, monitors interactius, WhatsApp o Teams.

Més info

Màrqueting Online i IA

Google Ads, Meta Ads, LinkedIn Ads i posicionament en motors d'IA (GEO/AEO): captem clients i fem que la teva marca aparegui on et busquen, també a ChatGPT, Gemini i Perplexity.

Més info

Tens un projecte en ment?

Explica'ns la teva visió i la convertim en una solució de programari. Sigui quin sigui l'abast, fem realitat la teva idea.