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.
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