使用 xvfb 自动化 X 程序

使用 xvfb 自动化 X 程序

遗憾的是,我不得不使用这个捆绑了摄像头驱动程序的专有程序。我想用它执行特定操作,只需单击几个按钮即可。而且没有 CLI。

那么,实现自动化的最简单方法是什么?我想使用 xvfb 在模拟 X 环境中打开程序,但接下来我该如何执行输入操作呢?可能是单击 (x, y) 处的像素,但如果我可以引用按钮和菜单项就更好了。

如果有更简单的方法,请告诉我!我不确定 xvfb 是否是正确的方法。我甚至不知道我想要完成的任务的实际名称,所以搜索非常困难……

答案1

使用xdotool它可以伪造键盘/鼠标输入、窗口管理等等。

基于的示例用法install_mt4-xdot.sh在 wine 下安装 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您可以控制任何应用程序或窗口。

然而,如果它的 wine 应用程序只在 Xvfb 下运行,你也可以考虑使用winetricks

相关内容