Используйте xvfb для автоматизации программы X
Мне, к сожалению, приходится использовать эту проприетарную программу, которая входит в комплект поставки драйвера камеры. Я хочу выполнить с ним определенное действие, которое включает нажатие нескольких кнопок. И нет CLI.
Итак, как проще всего это автоматизировать? Я хотя бы использовал xvfb, чтобы открыть программу в поддельной среде X, но тогда как мне будет выполнять операции ввода? Это может быть пиксель в точке (x, y), но было бы еще лучше, если бы я мог ссылаться на кнопки и пункты меню.
Если есть более простой способ сделать это, пожалуйста, сообщите! Я не уверен, что xvfb - правильный метод. Я даже не знаю фактического названия того, что я пытаюсь достичь, поэтому поиск очень труден...
1 ответ
Использование xdotool
который может подделать ввод с клавиатуры / мыши, управление окнами и многое другое.
Пример использования на основе install_mt4-xdot.sh
скрипт, который устанавливает приложение для Windows под 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
С помощью xdotool
Вы можете контролировать любое приложение или окно.
Однако, если это приложение Wine работает только под Xvfb, вы также можете использовать winetricks
,