GUÍA DE OCR (RECONOCIMIENTO ÓPTICO DE CARACTERES) - HAKALAB FRAMEWORK
=====================================================================

Esta guía explica cómo usar OCR para extraer y validar texto de imágenes en tus pruebas automatizadas.

ÍNDICE
======
1. Conceptos Básicos de OCR
2. Extracción de Texto
3. Validación de Texto
4. Reconocimiento de Números
5. Ejemplos Prácticos

=====================================================================

1. CONCEPTOS BÁSICOS DE OCR
===========================

OCR (Optical Character Recognition) permite extraer texto de imágenes y capturas de pantalla.

Casos de Uso:
- Validar texto en imágenes generadas dinámicamente
- Extraer códigos de verificación de capturas
- Validar reportes en formato imagen
- Verificar texto en gráficos y diagramas

=====================================================================

2. EXTRACCIÓN DE TEXTO
======================

Extraer Texto de Imagen:
- extraigo el texto de la imagen "screenshot.png" usando OCR
- I extract text from image "screenshot.png" using OCR
- extraigo el texto de la imagen en el elemento "imagen" con identificador "#image-element"
- I extract text from image in element "image" with identifier "#image-element"

Extraer Texto de Región:
- extraigo el texto de la región x=100 y=100 ancho=200 alto=100 usando OCR
- I extract text from region x=100 y=100 width=200 height=100 using OCR

Guardar Resultado:
- extraigo el texto de la imagen "screenshot.png" usando OCR y lo guardo en la variable "extracted_text"
- I extract text from image "screenshot.png" using OCR and store it in variable "extracted_text"

=====================================================================

3. VALIDACIÓN DE TEXTO
======================

Validar Presencia de Texto:
- la imagen "screenshot.png" debería contener el texto "Confirmado" usando OCR
- image "screenshot.png" should contain text "Confirmed" using OCR
- la imagen en el elemento "resultado" con identificador "#result-image" debería contener "Éxito"
- image in element "result" with identifier "#result-image" should contain "Success"

Validar Ausencia de Texto:
- la imagen "screenshot.png" no debería contener el texto "Error" usando OCR
- image "screenshot.png" should not contain text "Error" using OCR

Validar Patrón:
- la imagen "screenshot.png" debería contener texto que coincida con el patrón "\d{4}-\d{4}" usando OCR
- image "screenshot.png" should contain text matching pattern "\d{4}-\d{4}" using OCR

=====================================================================

4. RECONOCIMIENTO DE NÚMEROS
============================

Extraer Números:
- extraigo los números de la imagen "screenshot.png" usando OCR
- I extract numbers from image "screenshot.png" using OCR
- extraigo el número de la región x=50 y=50 ancho=100 alto=50 usando OCR
- I extract number from region x=50 y=50 width=100 height=50 using OCR

Validar Números:
- la imagen "screenshot.png" debería contener el número "12345" usando OCR
- image "screenshot.png" should contain number "12345" using OCR
- la imagen "screenshot.png" debería contener un número mayor que 1000 usando OCR
- image "screenshot.png" should contain number greater than 1000 using OCR

=====================================================================

5. EJEMPLOS PRÁCTICOS
=====================

Ejemplo 1: Validar Código de Verificación

Feature: Validación de código de verificación por OCR

  Scenario: Extraer y validar código de verificación
    Given voy a la url "https://example.com/verify"
    
    # Tomar captura de pantalla
    When tomo una captura de pantalla con nombre "verification_code"
    
    # Extraer código usando OCR
    When extraigo el texto de la imagen "verification_code.png" usando OCR y lo guardo en la variable "codigo"
    
    # Validar formato del código
    Then la variable "codigo" debería coincidir con el patrón "\d{6}"
    
    # Usar el código
    When relleno el campo "código" con la variable "codigo" con identificador "#code-input"
    And hago click en el botón "Verificar" con identificador "#verify-btn"
    
    # Validar resultado
    Then debería ver el texto "Código verificado"

Ejemplo 2: Validar Reportes en Imagen

Feature: Validación de reportes en formato imagen

  Scenario: Verificar contenido de reporte
    Given voy a la url "https://example.com/reports"
    
    # Descargar reporte como imagen
    When hago click en el botón "Descargar Reporte" con identificador "#download-report"
    And espero a que complete la descarga
    
    # Validar contenido usando OCR
    Then la imagen descargada debería contener el texto "Reporte Mensual" usando OCR
    And la imagen descargada debería contener el texto "Total: $10,000" usando OCR
    And la imagen descargada no debería contener el texto "Error" usando OCR

Ejemplo 3: Extraer Datos de Gráfico

Feature: Extracción de datos de gráfico

  Scenario: Extraer valores de gráfico
    Given voy a la url "https://example.com/dashboard"
    
    # Tomar captura del gráfico
    When tomo una captura del elemento "gráfico" con identificador "#chart" y la guardo como "chart.png"
    
    # Extraer números del gráfico
    When extraigo los números de la imagen "chart.png" usando OCR y los guardo en la variable "valores"
    
    # Validar valores
    Then la variable "valores" debería contener "100"
    And la variable "valores" debería contener "200"
    And la variable "valores" debería contener "300"

=====================================================================

CONCLUSIÓN

OCR es una herramienta poderosa para validar contenido visual en tus pruebas 
automatizadas. El framework proporciona funcionalidades completas para extraer 
y validar texto de imágenes.

=====================================================================
Documento generado automáticamente - Hakalab Framework v1.3.0
Guía de OCR
Fecha: Enero 2026
=====================================================================
