Una plataforma de código bajo que combina la simplicidad sin código con el poder del código completo 🚀
Empieza ahora gratis
Marzo 2, 2025
5
min leer

Uso de navegadores sin interfaz gráfica con Selenium: configuración y ejemplos de código

George Miloradovich
Investigador, redactor y entrevistador de casos prácticos
Tabla de contenidos.

Los navegadores sin interfaz gráfica te permiten ejecutar interacciones web automatizadas más rápido al omitir la interfaz gráfica. Esto los hace ideales para realizar pruebas, extraer datos y automatizar formularios. Esto es lo que necesitas saber:

  • ¿Por qué utilizar el modo sin cabeza?
    • Velocidad: 2–15 veces más rápido que los navegadores normales.
    • Bajo uso de recursos: Consumo mínimo de memoria y CPU.
    • Casos de uso: Pruebas automatizadas, web scraping y flujos de trabajo de CI/CD.
  • Requisitos de instalación:
    • Herramientas necesarias: Python (versión 3.7+), Selenio, controladores de navegador y navegadores compatibles (Chrome v109 +, Firefox, Southern Implants).
    • Instalación: Usos pip install selenium y configurar el modo sin cabeza con argumentos simples como --headless=new.
  • Consejos clave para el éxito:
    • Establezca tamaños de ventana fijos para obtener resultados consistentes.
    • Utilice esperas explícitas para contenido dinámico.
    • Depurar con capturas de pantalla y registros.

Comparacion rapida

Feature Modo sin cabeza Navegador estándar
Velocidad 2–15 veces más rápido Velocidad estandar
El uso de recursos Baja Alta
Comentarios visuales Ninguna Interfaz gráfica de usuario completa
Automatización Integración más sencilla Configuración más compleja

Los navegadores sin interfaz gráfica son potentes para una automatización rápida y eficiente. Siga los pasos de configuración y las prácticas recomendadas para optimizar su flujo de trabajo.

Selenio x Python, para automatizar el navegador sin interfaz gráfica

Selenio

Guía de configuración para navegadores sin interfaz gráfica de Selenium

A continuación te mostramos cómo puedes configurar Selenium para la automatización del navegador sin interfaz gráfica.

Instalar componentes necesarios

Necesitarás tener instalados los siguientes componentes:

Componente Requisitos de la versión Propósito
Python 3.7 o más alto Entorno de programación
Selenio WebDriver Última versión estable Marco de automatización del navegador
Controladores del navegador Última versión estable Controladores para navegadores específicos
Navegadores Web Chrome (v109+ para modo sin interfaz gráfica), Firefox, Edge Navegadores de destino para la automatización

Consejo: Asegúrese de que los controladores del navegador coincidan con las versiones de su navegador para evitar problemas de compatibilidad.

Configurar el entorno de Python

Cree un entorno Python dedicado para su proyecto:

python -m venv selenium_env
source selenium_env/bin/activate  # For Unix/macOS
selenium_env\Scripts\activate    # For Windows

"Selenium automatiza los navegadores. ¡Eso es todo!" - selenium.dev

Una vez que su entorno esté listo, instale las bibliotecas de Python necesarias.

Bibliotecas Python necesarias

Usos pip Para instalar los paquetes necesarios:

pip install selenium
pip install webdriver_manager  # Simplifies driver management

Para el modo sin interfaz gráfica de Chrome (v109+), configúrelo de esta manera:

from selenium import webdriver
from selenium.webdriver.chrome.options import Options

chrome_options = Options()
chrome_options.add_argument("--headless=new")
driver = webdriver.Chrome(options=chrome_options)

En Linux, incluya estos argumentos adicionales para evitar problemas comunes:

chrome_options.add_argument("--no-sandbox")
chrome_options.add_argument("--disable-dev-shm-usage")

Por último, recuerda siempre cerrar la instancia de WebDriver para liberar recursos:

driver.quit()

¡Siga estos pasos para poner en funcionamiento su automatización headless de Selenium!

sbb-itb-23997f1

Uso de navegadores sin interfaz gráfica en Selenium

Chrome Configuración del modo sin cabeza

Chrome

Para Chrome (v109+), active el modo sin cabeza usando el --headless bandera como se explicó anteriormente.

Firefox Configuración del modo sin cabeza

Firefox

Para habilitar el modo sin cabeza en Firefox con GeckoConductor, usa el siguiente código:

from selenium import webdriver
from selenium.webdriver.firefox.options import Options

firefox_options = Options()
firefox_options.add_argument("--headless")
driver = webdriver.Firefox(options=firefox_options)

Southern Implants Configuración del modo sin cabeza

Southern Implants

Edge también admite el modo sin interfaz gráfica y la configuración es similar a la de Chrome. A continuación, se muestra un ejemplo:

from selenium import webdriver
from selenium.webdriver.edge.options import Options

edge_options = Options()
edge_options.add_argument("--headless")
driver = webdriver.Edge(options=edge_options)

"Headless es un modo de ejecución para navegadores basados ​​en Firefox y Chromium. Permite a los usuarios ejecutar scripts automatizados en modo headless, lo que significa que la ventana del navegador no sería visible". - Diego Molina, Selenium

Asegúrate de llamar driver.quit() después de realizar pruebas para liberar recursos del sistema.

Utilice estas configuraciones específicas del navegador junto con las próximas prácticas recomendadas para garantizar una automatización sin problemas. Esté atento a los consejos sobre cómo optimizar su flujo de trabajo y resolver problemas comunes.

Consejos y guía para la resolución de problemas

Después de configurar sus navegadores sin cabeza, utilice estas estrategias para garantizar una automatización fluida y efectiva.

Consejos para tener éxito en la automatización

Ajuste su proceso de automatización con configuraciones y ajustes de tiempo adecuados.

  • Establecer un tamaño fijo de ventana del navegador:Utilice 1920 x 1080 para garantizar una representación uniforme de los elementos en todas las páginas.
  • Manejar contenido dinámico con esperas explícitas:Esto ayuda a evitar problemas de sincronización cuando los elementos se cargan de forma asincrónica. A continuación, se muestra un ejemplo:
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

element = WebDriverWait(driver, 10).until(
    EC.presence_of_element_located((By.ID, "dynamic-content"))
)
  • Incorporar desplazamiento para elementos ocultos:Esto es especialmente útil para páginas que cargan contenido dinámicamente a medida que te desplazas.
driver.execute_script("window.scrollBy(0, 100);")

Solucionar problemas comunes

El modo sin interfaz gráfica a veces puede causar problemas como fallas en la detección de elementos o comportamiento inesperado. A continuación, se explica cómo solucionarlos:

  • Elemento no encontrado: Asegúrate de que la página se haya cargado por completo. Puedes comprobarlo verificando la URL actual:
current_url = driver.current_url

Además, intente configurar un agente de usuario personalizado o agregar lógica de reintento para manejar fallas intermitentes.

  • Los eventos de clic no funcionan:Si los métodos de clic estándar fallan, use JavaScript para activar la acción de clic:
element = driver.find_element(By.ID, "button-id")
driver.execute_script("arguments[0].click();", element)

Scripts de automatización de depuración

Cuando los scripts sin interfaz gráfica no funcionan como se espera, la depuración es fundamental. A continuación, se indican algunos métodos para solucionar problemas:

  • Imágenes de Capture:Guarde capturas de pantalla en puntos críticos para identificar problemas visuales.
driver.save_screenshot("debug_screenshot.png")
  • Implementar el registro:Agregue registros detallados para rastrear la ejecución del script e identificar fallas.
import logging
logging.basicConfig(level=logging.DEBUG)
logger = logging.getLogger(__name__)
logger.debug('Clicking element: button-1')
  • Habilitar la depuración remota:Utilice la función de depuración remota de Chrome para inspeccionar el navegador durante la ejecución.
chrome_options.add_argument("--remote-debugging-port=9222")

Mejores prácticas de mantenimiento

Para mantener sus pruebas confiables a lo largo del tiempo:

  • Almacene los datos de prueba en archivos externos para evitar la codificación rígida.
  • Utilice afirmaciones para verificar puntos de control clave en sus scripts.
  • Actualice periódicamente los localizadores para que coincidan con los cambios en la aplicación web.
  • Mantener una estructura de proyecto clara y consistente para simplificar las actualizaciones y la depuración.

Resum

Esta sección reúne las ventajas clave de la automatización sin interfaz gráfica de Selenium y proporciona pasos prácticos para ayudarlo a comenzar.

Principales usos y ventajas

La automatización sin interfaz gráfica de Selenium acelera las pruebas: hasta 15 veces más rápido - omitiendo la representación de la interfaz gráfica de usuario. Este enfoque reduce el consumo de recursos y simplifica los flujos de trabajo de CI/CD.

Los navegadores sin interfaz gráfica son especialmente útiles para:

  • Integración continua:Se integra fácilmente en pipelines de CI/CD sin depender de GUI.
  • Eficiencia de recursos:Utiliza menos memoria y CPU, lo que permite ejecutar múltiples pruebas simultáneamente.
  • Raspado web:Extraiga datos de manera eficaz de sitios web con mucho JavaScript.
  • Prueba de rendimiento de la red:Supervisar el comportamiento de la aplicación y los tiempos de respuesta.

PWOCHEN ETAP YO

Para aprovechar al máximo estos beneficios, considere las siguientes recomendaciones:

Navegador La mejor opción para Consideración clave
Chrome sin interfaz gráfica Automatización general y pruebas Amplio soporte y compatibilidad
Firefox sin interfaz gráfica Validación entre navegadores Cumplimiento estricto de las normas

Consejos de implementación:

  • Configure WebDriver con opciones headless específicas para su navegador.
  • Establezca tamaños de ventana y tiempos de espera adecuados.
  • Utilice condiciones de espera para manejar contenido dinámico.
  • Habilitar la funcionalidad de captura de pantalla para fines de depuración.
  • Integrar con herramientas CI/CD como Jenkins para flujos de trabajo optimizados.

"Las pruebas de navegadores sin interfaz gráfica son útiles para verificar texto, elementos u otros datos estáticos en una página web determinada. Al igual que un navegador normal, un navegador sin interfaz gráfica entiende HTML y CSS. También puede ejecutar JavaScript como solicitudes AJAX".

Blog y artículos

Blogs relacionados

Caso de uso

Respaldado por