Ornold
Volver al blog
Guía8 min de lectura

Resolución automática de CAPTCHA en navegadores antidetección: guía práctica

Una explicación paso a paso de cómo Ornold detecta sitekeys, identifica el tipo de desafío e inyecta tokens en muchos perfiles a la vez.
5 abr 2026

Por qué los CAPTCHA son diferentes en flujos de antidetección

En un navegador normal, resuelves un CAPTCHA una vez y continúas. En la automatización antidetección, los CAPTCHA aparecen simultáneamente en docenas de perfiles de navegador, cada uno con su propia sesión, cookies e huella digital. Resolverlos uno por uno anula el propósito de la automatización paralela.
Ornold maneja la resolución de CAPTCHA como una operación por lotes: detecta el tipo de desafío en todas las sesiones activas, extrae sitekeys, los envía a un solucionador e inyecta los tokens de respuesta, todo en un único paso coordinado.

Tipos de CAPTCHA soportados

Ornold detecta y resuelve los tipos de desafío más comunes encontrados en sitios web modernos:
  • reCAPTCHA v2 — La clásica casilla "No soy un robot" y desafíos de cuadrícula de imágenes
  • reCAPTCHA v3 — Verificación invisible basada en puntuación que se ejecuta en segundo plano
  • hCaptcha — Desafíos de clasificación de imágenes ("selecciona todas las imágenes con motocicletas")
  • Cloudflare Turnstile — El desafío no interactivo que reemplazó a reCAPTCHA en muchos sitios
  • Desafíos personalizados — Botones de presión prolongada, rompecabezas deslizantes y otras verificaciones interactivas
El solucionador elige automáticamente el enfoque correcto basado en lo que detecta en la página. No necesitas especificar el tipo de CAPTCHA, simplemente llama a `browser_solve_captcha()` y Ornold se encarga del resto.

Cómo funciona el pipeline de resolución

El proceso de resolución de CAPTCHA tiene cuatro etapas. Cada una se ejecuta en paralelo en todas las sesiones de navegador activas.

Etapa 1 — Detección

Ornold escanea cada sesión de navegador activa en busca de patrones de CAPTCHA conocidos. Verifica:
  • iframes de reCAPTCHA y etiquetas de script (`google.com/recaptcha`)
  • Contenedores de hCaptcha y scripts de API (`hcaptcha.com`)
  • Widgets de Turnstile (`challenges.cloudflare.com`)
  • Elementos de desafío personalizados (botones de presión prolongada, pistas deslizantes)
La detección se realiza mediante inspección de DOM y, cuando es necesario, análisis visual. Si un CAPTCHA está oculto detrás de una superposición o se carga dinámicamente, la alternativa visual lo detectará.
// La detección ocurre automáticamente cuando llamas a solve const result = await browser_solve_captcha(); // result muestra qué sesiones tenían CAPTCHA y sus tipos // { total: 20, detected: 18, solved: 18, failed: 0 }

Etapa 2 — Extracción de Sitekey

Cada widget de CAPTCHA está vinculado a un sitekey, un identificador público que le dice al proveedor de CAPTCHA qué sitio está solicitando verificación. Ornold extrae automáticamente esta clave del DOM de la página.
Para reCAPTCHA, el sitekey se encuentra en el atributo `data-sitekey` del div del widget o en los parámetros de URL del script. Para hCaptcha, está en un atributo similar. Para Turnstile, está incrustado en la configuración del script de Cloudflare.
El sitekey, junto con la URL de la página, se envía al servicio de resolución. Esto es lo que hace que la solución sea válida: el token se genera para esa combinación específica de sitio y clave.

Etapa 3 — Generación de Token

Ornold envía el sitekey y la URL de la página a un servicio de resolución de CAPTCHA (2captcha). El servicio devuelve un token de respuesta, una cadena que prueba que el desafío fue completado.
Los tiempos de resolución varían según el tipo de CAPTCHA:
  • reCAPTCHA v2 — 15-45 segundos (se requiere reconocimiento de imágenes)
  • reCAPTCHA v3 — 5-15 segundos (basado en puntuación, sin imágenes)
  • hCaptcha — 15-60 segundos (depende del nivel de dificultad)
  • Turnstile — 5-20 segundos (generalmente más rápido que los desafíos basados en imágenes)
Los tokens se generan en paralelo para todas las sesiones. Si 20 navegadores necesitan resolución, las 20 solicitudes se envían simultáneamente. El tiempo de espera total es aproximadamente el mismo que resolver uno.

Etapa 4 — Inyección de Token

Una vez que llega el token, Ornold lo inyecta en la página. El método de inyección depende del tipo de CAPTCHA:
  • reCAPTCHA v2/v3 — Establece el valor del textarea `g-recaptcha-response` y llama a la función de devolución de llamada
  • hCaptcha — Establece el campo `h-captcha-response` y dispara el callback de verificación
  • Turnstile — Inyecta el token en el campo de respuesta de Turnstile y dispara el evento de éxito
Después de la inyección, Ornold opcionalmente hace clic en el botón de envío o espera a que la página avance automáticamente. El widget de CAPTCHA desaparece y el formulario continúa como si un humano lo hubiera resuelto.
// Flujo completo de solve + verification await browser_parallel_navigate({ url: "https://target.example/signup" }); await browser_parallel_fill({ ref: "email", values: emails }); // Resuelve CAPTCHA en todas las sesiones const result = await browser_solve_captcha(); console.log(`Resueltos: ${result.solved}/${result.total}`); // Envía el formulario await browser_parallel_click({ ref: "submit" }); // Verifica el éxito await browser_parallel_wait_for({ text: "Account created", timeoutMs: 15000 });

Manejo de desafíos de presión prolongada

Algunos sitios utilizan desafíos personalizados que requieren mantener presionado un botón durante varios segundos. Estos no se pueden resolver con inyección de token, necesitan interacción real del ratón.
Ornold detecta visualmente los desafíos de presión prolongada y simula la interacción: presiona el botón, mantiene la duración requerida y luego suelta. Esto funciona en paralelo en todas las sesiones activas.
// Detección y resolución de desafío de presión prolongada const captchaCheck = await browser_detect_press_hold(); if (captchaCheck.detected) { await browser_solve_press_hold(); // Espera la duración de presión, luego suelta }

Resolución de CAPTCHA por lotes en la práctica

Así es como se ve una ejecución real de resolución de CAPTCHA en 30 sesiones de Linken Sphere durante un flujo de registro de cuenta:
  • Navega las 30 sesiones a la página de registro
  • Rellena campos de formulario con datos por perfil (emails únicos, nombres, etc.)
  • Llama a `browser_solve_captcha()` — Ornold detecta reCAPTCHA v2 en 28 sesiones, Turnstile en 2 sesiones
  • Las 30 solicitudes de resolución se envían en paralelo
  • Los tokens llegan en 15-40 segundos
  • Ornold inyecta tokens y hace clic en enviar en cada sesión
  • 29 de 30 tienen éxito. 1 sesión obtiene un desafío secundario — Ornold reintenta automáticamente

Validación posterior a la resolución

Resolver el CAPTCHA es solo la mitad del trabajo. Necesitas verificar que la solución fue aceptada y la página avanzó. Ornold proporciona herramientas para esto:
// Verifica que todas las sesiones avanzaron más allá del CAPTCHA const status = await browser_status(); // Verifica qué sesiones están en la página esperada await browser_parallel_wait_for({ text: "Welcome", timeoutMs: 10000 }); // Si algunas sesiones están atrapadas, toma una captura de pantalla para diagnosticar await browser_parallel_screenshot();
Si una sesión falla la validación, puedes reintentar la resolución solo para esa sesión o marcarla para revisión manual. La clave es detectar fallos temprano en lugar de descubrirlos al final de un flujo largo.

Créditos de CAPTCHA y facturación

Cada resolución de CAPTCHA consume un crédito de tu cuenta de Ornold. Los créditos se deducen cuando el servicio de resolución devuelve un token, no cuando llamas a la función solve.
  • Las cuentas gratuitas obtienen 5 créditos de CAPTCHA después de completar el tour de incorporación
  • Los planes pagos incluyen una asignación de créditos mensuales según tu nivel
  • Se pueden comprar créditos adicionales por separado
  • Las resoluciones fallidas (donde el servicio no pudo generar un token) no consumen créditos
Verifica tu saldo de créditos en el panel de Ornold antes de ejecutar lotes grandes. Si se agotan los créditos a mitad de un lote, algunas sesiones tendrán CAPTCHA sin resolver.

Solución de problemas comunes

  • «CAPTCHA no detectado» — La página puede cargar el desafío dinámicamente. Agrega una espera antes de resolver: `await browser_parallel_wait_for({ selector: "iframe[src*=recaptcha]", timeoutMs: 10000 })`
  • «Token rechazado» — El token puede haber expirado (válido por ~2 minutos). Asegúrate de que el formulario esté listo antes de resolver, para que puedas enviar inmediatamente después.
  • «Timeout de resolución» — El servicio de resolución está sobrecargado o el tipo de CAPTCHA es inusualmente difícil. Reintenta una vez. Si persiste, verifica el estado del servicio en el panel de Ornold.
  • «Fallo parcial de lote» — Algunas sesiones se resolvieron, otras no. Usa `browser_status()` para identificar sesiones atrapadas y reintenta solo esas.
  • «Presión prolongada no funciona» — Asegúrate de que el elemento de desafío sea visible y no esté cubierto por otra superposición. Intenta desplazarte hacia él primero.

Mejores prácticas

  • Rellena el formulario antes de resolver el CAPTCHA. Los tokens expiran en ~2 minutos, así que minimiza el tiempo entre resolver y enviar.
  • Usa `browser_status()` después de resolver para verificar que todas las sesiones avanzaron. No asumas el éxito.
  • Para lotes grandes (50+ sesiones), resuelve en grupos de 20-30 para evitar sobrecargar el servicio de resolución.
  • Monitorea tu saldo de créditos. Configura alertas en el panel si está disponible.
  • Si un sitio cambia frecuentemente de proveedor de CAPTCHA, usa el flujo de detección automática en lugar de codificar un tipo.

Artículos relacionados