"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > ¿Cómo ejecutar Selenium en entornos sin cabeza: superar el error "No se puede abrir la pantalla"?

¿Cómo ejecutar Selenium en entornos sin cabeza: superar el error "No se puede abrir la pantalla"?

Publicado el 2024-11-19
Navegar:498

How to Run Selenium in Headless Environments: Overcoming the

Cómo ejecutar Selenium en Xvfb: superar el error "No se puede abrir la pantalla"

Xvfb (X Virtual Framebuffer) proporciona una pantalla virtual que permite la ejecución de aplicaciones gráficas en entornos sin cabeza, como instancias EC2 que carecen de GUI. Esto es esencial para ejecutar pruebas de Selenium en servidores sin una interfaz gráfica de usuario.

Sin embargo, incluso después de instalar Selenium y Xvfb, puede encontrar el "Error: no se puede abrir la pantalla: :0" al intentar ejecutar pruebas. Esto se debe a la dependencia de Selenium de una pantalla gráfica para interactuar con páginas web.

Solución: utilice PyVirtualDisplay o Xvfbwrapper

Para resolver este problema, puede utilizar PyVirtualDisplay o Xvfbwrapper , que encapsula Xvfb como módulos de Python. Estos módulos simulan una pantalla virtual, lo que permite que Selenium se ejecute en entornos sin cabeza:

Opción 1: PyVirtualDisplay

from pyvirtualdisplay import Display
from selenium import webdriver

display = Display(visible=0, size=(800, 600))
display.start()

browser = webdriver.Firefox()
browser.get('http://www.google.com')
print(browser.title)
browser.quit()

display.stop()

Opción 2: Xvfbwrapper

from xvfbwrapper import Xvfb

vdisplay = Xvfb()
vdisplay.start()

browser = webdriver.Firefox()
browser.get('http://www.google.com')
print(browser.title)
browser.quit()

vdisplay.stop()

También puede utilizar un administrador de contexto para simplificar el proceso:

from xvfbwrapper import Xvfb

with Xvfb() as xvfb:
    # Launch stuff inside virtual display here.
    # It starts/stops in this code block.

Al utilizar estos módulos, puede ejecutar pruebas de Selenium de manera efectiva en servidores sin cabeza que carecen de una interfaz gráfica de usuario, lo que garantiza que sus pruebas se puedan ejecutar correctamente en cualquier entorno.

Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3