selenium - run - ¿Cómo hacer visible la visualización de Xvfb?
xvfb ubuntu (4)
Puede obtener una vista en vivo ejecutando un servidor VNC en la pantalla Xvfb, como este:
x11vnc -display :99 -localhost &
vncviewer :0
Estoy ejecutando selenio a través de Xvfb en el número de pantalla: 99 de esta manera:
/ usr / bin / Xvfb: 99 -ac -screen 0 1024x768x8 y export DISPLAY = ": 99" && java -jar /usr/lib/selenium/selenium-server-standalone-2.24.1.jar -port 4444
Sin embargo, mostrar con un número distinto de: 0 no está visible por defecto. ¿Cómo lo hago visible para ver realmente qué está haciendo el selenio en el navegador?
Todo lo que necesita es instalar x11vnc
través de:
sudo apt-get install x11vnc xvfb fluxbox
Opcionalmente instale fluxbox para tener un gestor de ventanas simple.
Luego, para configurar el acceso a Xvfb para el control remoto, puede usar X11 sobre SSH o VNC sobre SSH, por ejemplo
export DISPLAY=:1
Xvfb :1 -screen 0 1024x768x16 &
fluxbox &
x11vnc -display :1 -bg -nopw -listen localhost -xkb
Si su Xvfb solo escucha en localhost, puede configurar el tunneling en localhost, por lo que un vncviewer puede conectarse a localhost para obtener el control remoto del servidor. P.ej
ssh -N -T -L 5900:localhost:5900 user@remotehost &
vncviewer -encodings ''copyrect tight zrle hextile'' localhost:5900
O para escuchar en todas las direcciones con contraseña, use:
x11vnc -display :0.0 -usepw
Para configurar la contraseña, ejecute: x11vnc -storepasswd
.
Ver: control remoto sobre SSH en la página Xvfb de Wikipedia
O puede usar el siguiente delineador:
$ x11vnc -create -env FD_PROG=/usr/bin/fluxbox /
-env X11VNC_FINDDISPLAY_ALWAYS_FAILS=1 /
-env X11VNC_CREATE_GEOM=${1:-1024x768x16} /
-gone ''killall Xvfb'' /
-bg -nopw
-
-create
hace iniciar Xvfb -
X11VNC_FINDDISPLAY_ALWAYS_FAILS=1
hace ir a la sesión Xvfb creada (Pantalla:1
lugar de:0
que será el escritorio normal) -
FD_PROG=/usr/bin/fluxbox
hace encender Fluxbox (el de Ubuntu, debe tener el logo de Ubuntu de fondo) -
X11VNC_CREATE_GEOM=${1:-1024x768x16}
configura la pantalla a color de 16 bits 1024x768 -
-gone
limpia cuando sale, ya que de lo contrario se dejaxvfb
(matarxvfb
también mata afluxbox
)
Una solución simple es también tomar constantemente capturas de pantalla del programa como esta:
while /bin/true; do
DISPLAY=:99 import -window root ~/Pictures/xvfb_screenshot.png
sleep 0.1
done &
PID=$!
feh --reload 0.1 ~/Pictures/xvfb_screenshot.png 2>/dev/null
kill $PID
Nota: requiere instalar imagemagick y feh
Es virtual. Desde la página man Xvfb(1)
:
Xvfb es un servidor X que puede ejecutarse en máquinas sin hardware de visualización y sin dispositivos de entrada física. Emula un framebuffer tonto usando memoria virtual.
También en la página de manual:
Xvfb -pixdepths 3 27 -fbdir /var/tmp
El servidor escuchará las conexiones como el servidor número 0, tendrá la configuración de pantalla predeterminada (una pantalla, 1280x1024x8), también admitirá profundidades de mapa de bits de 3 y 27, y utilizará memoria asignada archivos en / var / tmp para el framebuffer.
xwud -in /var/tmp/Xvfb_screen0
Muestra la pantalla 0 del servidor iniciado por el ejemplo anterior.