xvfbを使用してXプログラムを自動化する


2

悲しいことに、カメラドライバーをバンドルしたこの独自のプログラムを使用する必要があります。いくつかのボタンをクリックするという特定のアクションを実行したい。また、CLIはありません。

それで、これを自動化する最も簡単な方法は何ですか?xvfbを使用して偽のX環境でプログラムを開くことはできますが、入力操作を実行するにはどうすればよいですか?(x、y)のピクセルをクリックすることもできますが、ボタンやメニュー項目を参照できればさらに便利です。

もっと簡単な方法があれば教えてください!xvfbが正しい方法かどうかわかりません。私が達成しようとしているものの実際の名前すら知らないので、検索は非常に難しいです...

回答:


3

xdotoolキーボード/マウス入力、ウィンドウ管理などを偽造できるものを使用します。

install_mt4-xdot.shwineにWindowsアプリをインストールするスクリプトに基づいた使用例:

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て、任意のアプリまたはウィンドウを制御できます。

ただし、Xvfbでのみ実行されるワインアプリの場合は、の使用も検討できますwinetricks

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.