Articulo de referencia

Navegador sin interfaz gráfica

Un navegador sin interfaz gráfica es un navegador web que no tiene interfaz gráfica de usuario . Los navegadores sin interfaz gráfica (headless browsers) proporcionan control au...

Un navegador sin interfaz gráfica es un navegador web que no tiene interfaz gráfica de usuario .

Los navegadores sin interfaz gráfica (headless browsers) proporcionan control automatizado de una página web en un entorno similar al de los navegadores web populares, pero se ejecutan mediante una interfaz de línea de comandos o utilizando comunicación de red. Son particularmente útiles para probar páginas web, ya que pueden renderizar e interpretar HTML de la misma manera que un navegador, incluyendo elementos de estilo como el diseño de la página, el color, la selección de fuentes y la ejecución de JavaScript y Ajax , que generalmente no están disponibles al utilizar otros métodos de prueba. [ 1 ]

Desde la versión 59 de Google Chrome [ 2 ] [ 3 ] y la versión 56 [ 4 ] de Firefox , [ 5 ] existe soporte nativo para el control remoto del navegador. Esto hizo que los esfuerzos anteriores quedaran obsoletos, en particular PhantomJS . [ 6 ]

Casos de uso

Los principales casos de uso de los navegadores sin interfaz gráfica son:

Otros usos

Los navegadores sin interfaz gráfica también son útiles para el web scraping . Google afirmó en 2009 que el uso de un navegador sin interfaz gráfica podría ayudar a su motor de búsqueda a indexar el contenido de sitios web que utilizan Ajax. [ 7 ]

Los navegadores sin interfaz gráfica también se han utilizado indebidamente de diversas maneras:

Sin embargo, un estudio del tráfico de navegadores realizado en 2018 no encontró preferencia por parte de los ciberdelincuentes por los navegadores sin interfaz gráfica. [ 3 ] No hay indicios de que los navegadores sin interfaz gráfica se utilicen con mayor frecuencia que los navegadores con interfaz gráfica para fines maliciosos, como ataques DDoS, inyecciones SQL o ataques de secuencias de comandos entre sitios .

Uso

Dado que varios navegadores importantes admiten de forma nativa el modo sin interfaz gráfica a través de API , existen algunos programas para automatizar el navegador mediante una interfaz unificada. Estos incluyen:

Automatización de pruebas

Algunos programas y marcos de automatización de pruebas incluyen navegadores sin interfaz gráfica como parte de sus herramientas de prueba. [ 3 ]

  • Capybara utiliza la navegación sin interfaz gráfica, ya sea a través de WebKit o Headless Chrome, para imitar el comportamiento del usuario en sus protocolos de prueba. [ 16 ]
  • Jasmine usa Selenium por defecto, pero puede usar WebKit o Headless Chrome para ejecutar pruebas de navegador. [ 17 ]
  • Cypress , un framework para pruebas de frontend
  • QF-Test es una herramienta de software para la realización de pruebas automatizadas de programas a través de una interfaz gráfica de usuario, donde también se puede utilizar un navegador sin interfaz gráfica para realizar las pruebas.

Alternativas

Otro enfoque consiste en utilizar software que proporcione API de navegador. Por ejemplo, Deno proporciona API de navegador como parte de su diseño. Para Node.js , jsdom [ 18 ] es el proveedor más completo. Si bien la mayoría puede admitir funciones comunes del navegador (análisis de HTML, cookies , XHR , algo de JavaScript, etc.), no renderizan el DOM y tienen soporte limitado para eventos del DOM . Suelen ser más rápidos que los navegadores completos, pero no pueden interpretar correctamente muchos sitios web populares. [ 19 ] [ 20 ] [ 21 ]

Otro ejemplo es HtmlUnit , un navegador sin interfaz gráfica escrito en Java. HtmlUnit utiliza el motor Rhino para proporcionar compatibilidad con JavaScript y Ajax, así como capacidad de renderizado parcial. [ 22 ] [ 23 ]

Lista de navegadores sin interfaz gráfica

Se trata de diversos programas que proporcionan API para navegadores sin interfaz gráfica.

  • DotNetBrowser es una biblioteca propietaria basada en .NET Chromium que proporciona el modo de renderizado fuera de pantalla y se puede utilizar sin incrustar ni mostrar ventanas. [ 24 ] [ 25 ]
  • Lightpanda es un navegador headless de código abierto escrito en Zig . A diferencia de los navegadores headless basados ​​en Chromium , fue desarrollado para funcionar sin interfaz gráfica y admite el Protocolo de Herramientas para Desarrolladores de Chrome (CDP), el acceso al DOM y la ejecución de JavaScript , pero no la representación gráfica. [ 26 ] [ 27 ]
  • SimpleBrowser es un navegador web sin interfaz gráfica escrito en C# que admite .NET Standard 2.0 [ 28 ]
  • Splash es un navegador web sin interfaz gráfica escrito en Python que utiliza el motor de renderizado WebKit a través de Qt . Cuenta con una API HTTP, soporte para scripts Lua y un IDE integrado basado en IPython (Jupyter). Su desarrollo comenzó en ScrapingHub en 2013 y está financiado parcialmente por DARPA . [ 29 ] [ 30 ]
  • Zombie.js es un entorno de navegador simulado para Node.js. [ 31 ]

Un esfuerzo anterior (2008) fue envjs de John Resig , que era un entorno de navegador simulado escrito en JavaScript para el motor Rhino . [ 32 ]

Véase también

Referencias

  1. "¿Qué es un navegador sin interfaz gráfica?" . arhg.net . 7 de octubre de 2009.
  2. "Primeros pasos con Chrome sin interfaz gráfica" . developers.google.com . 27 de abril de 2017.
  3. 1 2 3 Bekerman, Dima (2018-11-28). "Chrome sin interfaz gráfica: a los DevOps les encanta, y a los hackers también, aquí está el porqué | Imperva" . Blog . Recuperado el 22 de febrero de 2021 .
  4. "Notas de la versión de Firefox 56" . developer.mozilla.org . 26 de febrero de 2023.
  5. "Modo sin interfaz gráfica: compatibilidad con navegadores" . developer.mozilla.org . Archivado del original el 3 de junio de 2018. Consultado el 31 de agosto de 2017 .
  6. "Inicio rápido" . phantomjs.org .
  7. Mueller, John (2009-10-07). "Blog oficial de Google Webmaster Central: Una propuesta para hacer que AJAX sea rastreable" . Blog oficial de Google Webmaster Central .
  8. Rawlings, Matt (2013-11-20). "Botnet de navegador sin interfaz gráfica utilizada en un ataque DDoS de 150 horas" . Business 2 Community .
  9. Mello Jr., John P. (25 de marzo de 2014). "El tráfico web sin interfaz amenaza la economía de Internet" . ecommercetimes.com .
  10. Raywood, Dan (2014-04-01). "Navegadores sin interfaz gráfica: software legítimo que permite ataques" . ITProPortal .
  11. Mueller, Neal. "Relleno de credenciales" . owasp.org .
  12. Sheth, Himanshu (17 de noviembre de 2020). "Selenium 4 ahora cumple con los estándares W3C: todo lo que necesitas saber" .
  13. "GitHub - Dramaturgo" . GitHub . Consultado el 11 de abril de 2021 .
  14. "Github - Puppeteer" . GitHub . Consultado el 11 de abril de 2021 .
  15. "Soporte BiDi de WebDriver | Puppeteer" . pptr.dev . Consultado el 24/10/2025 .
  16. Silva, Francisco (29 de mayo de 2019). "De capybara-webkit a Headless Chrome y ChromeDriver" . Blog | Imaginary Cloud . Recuperado el 22 de febrero de 2021 .
  17. Bintz, John. "jasmine-headless-webkit -- ¡La forma más rápida de ejecutar tus especificaciones de Jasmine!" . johnbintz.github.io . Consultado el 22 de febrero de 2021 .
  18. "JSDOM en GitHub: simulando ser un navegador visual" . GitHub . Consultado el 18 de abril de 2021 .
  19. "assaf/zombie" . GitHub .
  20. ^ "ヘルペスが口や目からうつる?感染した時の症状と病院の治療方法とは" . www.envjs.com . Archivado desde el original el 23 de febrero de 2015 . Consultado el 13 de marzo de 2015 .
  21. "JavaScriptMVC - EnvJS" . javascriptmvc.com . Archivado del original el 23 de mayo de 2015. Consultado el 13 de marzo de 2015 .
  22. Mike Bowler. "HtmlUnit – Bienvenido a HtmlUnit" . sourceforge.net .
  23. «Plataforma (API Vaadin 7.3.4)» . vaadin.com . 6 de noviembre de 2014.
  24. Ejemplos de DotNetBrowser , TeamDev, 12 de marzo de 2021 , consultado el 12 de marzo de 2021
  25. "DotNetBrowser" . TeamDev. 5 de mayo de 2021.
  26. "Lightpanda: el navegador sin interfaz gráfica diseñado para IA y automatización" . GitHub . lightpanda-io . Consultado el 12 de febrero de 2026 .
  27. Krukowski, Ilya (23 de abril de 2026). "Lightpanda: El navegador sin interfaz gráfica creado para agentes de IA y automatización escalable" . ScrapingBee . Recuperado el 23 de mayo de 2026 .
  28. SimpleBrowserDotNet/SimpleBrowser , SimpleBrowserDotNet, 10/02/2021 , consultado el 22/02/2021
  29. "scrapinghub/splash" . GitHub . 20 de diciembre de 2021.
  30. "DARPA - Catálogo abierto" . Archivado del original el 28 de mayo de 2015. Consultado el 28 de mayo de 2015 .
  31. "Zombi" . labnotes.org .
  32. Resig, John (12 de octubre de 2008). "env-js: Un entorno de navegador puramente JavaScript" vía GitHub.