Utilice xvfb para automatizar el programa X

Utilice xvfb para automatizar el programa X

Lamentablemente tengo que utilizar este programa propietario que incluye un controlador de cámara. Quiero realizar una acción específica con él, que implica hacer clic en algunos botones. Y no hay CLI.

Entonces, ¿cuál es la forma más sencilla de automatizar esto? Pensé en usar xvfb para abrir el programa en un entorno X falso, pero entonces, ¿cómo haría para realizar operaciones de entrada? Podría hacer clic en el píxel en (x, y), pero sería aún mejor si pudiera hacer referencia a botones y elementos de menú.

Si hay una forma más sencilla de hacerlo, ¡dígaselo! No estoy seguro de que xvfb sea el método correcto. Ni siquiera sé el nombre real de lo que estoy tratando de lograr, por lo que buscar es muy difícil...

Respuesta1

Usarxdotoolque puede falsificar la entrada del teclado/ratón, la gestión de ventanas y más.

Uso de muestra basado en elinstall_mt4-xdot.shscript que instala la aplicación de Windows en Wine:

wine setup.exe &
echo "Waiting to initialize..."
while ! WID=$(xdotool search --name "Setup"); do
  sleep 2
done

echo "Sending installer keystrokes..." >&2
xdotool key --window $WID --delay 500 space Tab Tab Tab Return Tab Tab Tab space Alt+n

echo "Waiting for installer to finish..." >&2
xwininfo -id $WID -tree
while pgrep -l setup; do sleep 5; done

echo "Waiting program to start..." >&2
while ! WID=$(xdotool search --name "Title - *"); do
  sleep 2
done

echo "Closing application..." >&2
xdotool key --window $WID --delay 500 Escape Escape Alt+f x
sleep 1
wineserver -k
echo "Installation successful." >&2

Usando xdotoolpuedes controlar cualquier aplicación o ventana.

Sin embargo, si su aplicación Wine solo se ejecutó en Xvfb, también puede considerar usarwinetricks.

información relacionada