Use o xvfb para automatizar o programa X

2

Eu infelizmente tenho que usar este programa proprietário que empacota um driver de câmera. Eu quero executar 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? Eu pensei em usar o xvfb para abrir o programa em um ambiente X falso, mas como eu faria para executar operações de entrada? Poderia ser clique em pixel em (x, y), mas seria ainda melhor se eu pudesse referenciar botões e itens de menu.

Se houver uma maneira mais simples de fazer isso, por favor, diga! Não tenho certeza se o xvfb é o método correto. Eu nem sei o nome real do que estou tentando realizar, então pesquisar é muito difícil ...

    
por Luan Nico 26.01.2016 / 01:01

1 resposta

2

Use xdotool que pode falsificar entradas de teclado / mouse, gerenciamento de janelas e muito mais.

Exemplo de uso com base no script install_mt4-xdot.sh 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 app wine for executado somente no Xvfb, você também poderá considerar o uso de winetricks .

    
por 16.06.2016 / 03:25

Tags