Selenio y sin cabeza para el Medio Ambiente
-
30-09-2019 - |
Pregunta
Recientemente he instalado Python 2.7, Robot Framework y la Biblioteca selenio (todavía no sé si he conseguido aunque ...) en un Servidor de Red Hat para correr alguna prueba en una aplicación web.
Así que trató un caso de prueba simple usando Robot Framework para ver si selenio Biblioteca es funcional, sólo para abrir una página web, nada más ...
El selenio servidor está funcionando de acuerdo con el resultado de PS, y los binarios de Firefox en el trayecto ...
Al ejecutar el caso de prueba desde el marco del robot (con la testcasename.tsv pybot) consigo una excepción:
ERROR: Problema capturar una captura de pantalla de la cadena: java.awt.AWTException: medio ambiente sin cabeza
Así que, ¿cuál es el entorno sin cabeza ? ¿Alguien tiene una idea de si hay algo más que necesita ser instalados o configurados para ser así?
Solución
Uso de la X Frame Virtual Buffer (Xvfb):
Podemos utilizar XVFB para crear un entorno sin cabeza para el selenio (por ejemplo, para ejecutar a través de SSH).
Instrucciones:
-
xvfb
de inicio con las siguientes opciones:$ Xvfb :89 -ac -noreset
(donde
:89
es la "pantalla" virtual creado). -
A continuación, establezca la variable
DISPLAY
que ser de esta pantalla virtual:$ export DISPLAY=:89
-
En este punto, podemos ejecutar el servidor de selenio como se desee. Ejemplos siguen.
Ejecutar el archivo de Java del servidor:
$ java -jar selenium-server.jar
En Python:
from selenium import webdriver
driver = webdriver.Firefox()
...
Otros consejos
Aquí es una biblioteca simple robot sólo para ese fin.