
Infelizmente, tenho que usar este programa proprietário que inclui um driver de câmera. Quero realizar uma ação específica com ele, que envolve clicar em alguns botões. E não há CLI.
Então, qual é a maneira mais fácil de automatizar isso? Pensei em usar o xvfb para abrir o programa em um ambiente X falso, mas como eu faria para realizar operações de entrada? Poderia ser um pixel de clique em (x, y), mas seria ainda melhor se eu pudesse fazer referência a botões e itens de menu.
Se houver uma maneira mais simples de fazer isso, diga! Não tenho certeza se xvfb é o método correto. Eu nem sei o nome real do que estou tentando realizar, então pesquisar é muito difícil...
Responder1
Usarxdotool
que pode falsificar entrada de teclado/mouse, gerenciamento de janelas e muito mais.
Uso de amostra com base noinstall_mt4-xdot.sh
script que instala o aplicativo do Windows no 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
você pode controlar qualquer aplicativo ou janela.
No entanto, se o aplicativo wine for executado apenas no Xvfb, você também pode considerar usarwinetricks
.