Используйте xvfb для автоматизации X-программы

Используйте 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.

Связанный контент