v2.3.0 Latest · 788 tests passing · 100% local · sin IA · sin nube

Cuando un selector
se rompe, Healify
te dice cómo.

No más tests flaky por un data-testid que cambió. Corre offline, lee tu DOM real y te da el selector que sí funciona.

npm i -D @healify/cli ↗
$ npx @healify/cli init
healify-report.html · offline · 12ms
$ npx playwright test
✗ FAIL checkout.spec.ts:42:11
locator.click: [data-testid="submit-btn"] → not found
✔ Healify 1,248 nodes · no network
→ 1 stable alternative found
Fix sugerido · 94% confianza
El botón cambió a texto visible. Usá role + name.
page.getByRole('button', {name: 'Guardar'})
was: [data-testid="submit-btn"]auto-healable
0 datos enviados12ms localMIT
Funciona con Playwright Cypress Selenium WebdriverIO 0 datos fuera de tu máquina
Cómo funciona

Tres pasos.
Cero magia.

No adivina. Lee tu DOM real y te da el selector que pasa.

01 / CAPTURA

Corre tu suite normal

Instalás el reporter. Si un locator falla, Healify captura DOM + metadata. Sin cambiar CI.

02 / ANÁLISIS

Analiza 100% offline

Recorre roles ARIA, texto, estructura. Rankea por estabilidad. Sin IA, sin nube.

03 / FIX

Copiá y pegá

Abrís healify-report.html. Ves antes/después y copiás el selector que funciona.

100% Local

Ningún dato sale. Sin API key, sin cuenta, sin tracking.

12ms

Análisis de 1k+ nodos en milisegundos, sin dependencias.

ARIA-first

Prioriza getByRole, texto visible y roles. Selectores estables.

Sin IA

Heurística determinista. Mismo input, mismo output.

Reporte HTML

healify-report.html con diff visual y fix copiable.

MIT

Open source, sin vendor lock-in. Tuyo para siempre.

Shadow DOM & iframes

Ve dentro de web components y frames. Te dice a qué frame entrar.

Page Objects

Si el selector vive en pages/, fix lo encuentra y lo arregla ahí.

Umbrales tuyos

minConfidence, healEnabled y más, por config o env var.

Ecosistema @healify/*

Mismo reporte, misma DX. Elegí tu runner.

@healify/reporter-corecore

Core compartido: healing engine, audit y reports. Base de todos los runners.

npm i -D @healify/reporter-core
@healify/test-runnerPlaywright

Reporter. Genera healify-report.html al fallar.

npm i -D @healify/test-runner
@healify/cypress-pluginCypress

Plugin. Soporte cy.get + Testing Library.

npm i -D @healify/cypress-plugin
@healify/selenium-pluginSelenium

Wrapper WebDriver. Cura en vivo.

npm i -D @healify/selenium-plugin
@healify/webdriverio-pluginWebdriverIO

Wrapper v8+. Auto-heal opcional en dev, solo reporte en CI.

npm i -D @healify/webdriverio-plugin
@healify/ai-localAI Local

IA local opcional. Todo offline, sin nube, sin cuenta.

npm i -D @healify/ai-local
@healify/cliCLI · core

doctor · init · fix · history. El cerebro local.

npm i -D @healify/cli

Documentación

Todo vive en el repo, en markdown, sin cuenta ni login. Si venís de cero, empezá por Instalación — son dos minutos.

Empezar

Instalación

El snippet para tu runner: Playwright, Cypress, Selenium o WebdriverIO. Es lo único que hay que agregar.

Empezar

Comandos

doctor, fix, dashboard, flake, watch. Todo el CLI, y nada de esto manda datos a ningún lado.

Afinar

Configuración

Umbrales de confianza, apagar el sanado, test-ids propios. Opcional: anda sin configurar nada.

Afinar

Reportes y dashboard

El HTML que le pasás al equipo, el histórico de curaciones y la detección de tests flaky.

Integrar

GitHub Action

Que comente los selectores rotos en cada PR. Nunca modifica archivos.

Integrar

Jira / GitHub Issues

Cada selector roto entra a tu backlog con la evidencia. El mismo nunca abre dos tickets. Opt-in y con tus credenciales.

Ejemplos que se corren

No son snippets: son proyectos completos. CI los ejecuta contra un browser real en cada commit, así que si dejan de funcionar nos enteramos.

Ejemplo

Playwright + Page Objects

El selector vive en pages/, no en el test. Healify lo encuentra igual y te dice dónde lo tocó.

Ejemplo

Cypress + Shadow DOM

El botón está dentro de un web component, donde querySelector devuelve cero. El test pasa igual.

Ejemplo

Selenium + cura en vivo

plugin.wrap(driver) y nada más. El test no se toca: cuando el selector falla, Healify lo resuelve en el momento.

Research

Los 15 competidores

El análisis que se hizo antes de escribir una línea, y qué le faltaba a Healify frente a cada uno.

Ver toda la documentación ↗

Corré tu suite.
Cuando algo se rompa, Healify ya va a estar ahí.

npx @healify/cli@latest ↗
MIT · 100% local · 0 tracking · Rosario, AR