
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
Usarxdotool
que puede falsificar la entrada del teclado/ratón, la gestión de ventanas y más.
Uso de muestra basado en elinstall_mt4-xdot.sh
script 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 xdotool
puedes controlar cualquier aplicación o ventana.
Sin embargo, si su aplicación Wine solo se ejecutó en Xvfb, también puede considerar usarwinetricks
.