Saltar al contenido principal

Pruebas OCR

Las pruebas automatizadas en aplicaciones nativas móviles y sitios de escritorio pueden ser particularmente desafiantes cuando se trata de elementos que carecen de identificadores únicos. Los selectores estándar de WebdriverIO no siempre pueden ayudarte. Entra al mundo del @wdio/ocr-service, un servicio potente que aprovecha OCR (Reconocimiento Óptico de Caracteres) para buscar, esperar e interactuar con elementos en pantalla basándose en su texto visible.

Los siguientes comandos personalizados se proporcionarán y añadirán al objeto browser/driver para que tengas las herramientas adecuadas para hacer tu trabajo.

Cómo funciona

Este servicio:

  1. crea una captura de pantalla de tu pantalla/dispositivo. (Si es necesario, puedes proporcionar un haystack, que puede ser un elemento o un objeto rectángulo, para señalar un área específica. Consulta la documentación de cada comando.)
  2. optimiza el resultado para OCR convirtiendo la captura de pantalla en blanco/negro con un alto contraste (el alto contraste es necesario para evitar mucho ruido de fondo en la imagen. Esto se puede personalizar por comando.)
  3. utiliza Reconocimiento Óptico de Caracteres de Tesseract.js/Tesseract para obtener todo el texto de la pantalla y resaltar todo el texto encontrado en una imagen. Puede soportar varios idiomas que se pueden encontrar aquí.
  4. utiliza Lógica Difusa de Fuse.js para encontrar cadenas que son aproximadamente iguales a un patrón dado (en lugar de exactamente). Esto significa, por ejemplo, que el valor de búsqueda Username también puede encontrar el texto Usename o viceversa.
  5. Proporciona un asistente de cli (npx ocr-service) para validar tus imágenes y recuperar texto a través de tu terminal

Un ejemplo de los pasos 1, 2 y 3 se puede encontrar en esta imagen

Pasos del proceso

Funciona con CERO dependencias del sistema (además de lo que usa WebdriverIO), pero si es necesario, también puede funcionar con una instalación local de Tesseract ¡lo que reducirá drásticamente el tiempo de ejecución! (Consulta también la Optimización de Ejecución de Pruebas sobre cómo acelerar tus pruebas.)

¿Entusiasmado? Comienza a usarlo hoy siguiendo la guía de Primeros Pasos.

Importante

Hay una variedad de razones por las que podrías no obtener una salida de buena calidad de Tesseract. Una de las razones más importantes que podría estar relacionada con tu aplicación y este módulo podría ser el hecho de que no hay una distinción de color adecuada entre el texto que debe encontrarse y el fondo. Por ejemplo, el texto blanco sobre un fondo oscuro puede encontrarse fácilmente, pero el texto claro sobre un fondo blanco o el texto oscuro sobre un fondo oscuro difícilmente se puede encontrar.

Consulta también esta página para obtener más información de Tesseract.

No olvides leer también las Preguntas Frecuentes.

Welcome! How can I help?

WebdriverIO AI Copilot