Verwenden Sie xvfb, um das X-Programm zu automatisieren

Verwenden Sie xvfb, um das X-Programm zu automatisieren

Leider muss ich dieses proprietäre Programm verwenden, das einen Kameratreiber mitliefert. Ich möchte damit eine bestimmte Aktion ausführen, die das Klicken einiger Schaltflächen erfordert. Und es gibt keine CLI.

Wie kann man das also am einfachsten automatisieren? Ich dachte daran, xvfb zu verwenden, um das Programm in einer gefälschten X-Umgebung zu öffnen, aber wie würde ich dann Eingabevorgänge durchführen? Es könnte ein Klickpixel bei (x, y) sein, aber noch schöner wäre es, wenn ich auf Schaltflächen und Menüelemente verweisen könnte.

Wenn es einen einfacheren Weg gibt, sagen Sie es mir bitte! Ich bin nicht sicher, ob xvfb die richtige Methode ist. Ich kenne nicht einmal den eigentlichen Namen dessen, was ich erreichen möchte, daher ist die Suche sehr schwierig ...

Antwort1

Verwendenxdotooldie Tastatur-/Maus-Eingaben, Fensterverwaltung und mehr vortäuschen können.

Beispielnutzung basierend auf deminstall_mt4-xdot.shSkript, das die Windows-App unter Wine installiert:

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

Mit xdotoolkönnen Sie jede App oder jedes Fenster steuern.

Wenn die Wine-App jedoch nur unter Xvfb läuft, können Sie auch Folgendes verwenden:winetricks.

verwandte Informationen