使用xdotool和Xvfb实现自动化

Krz*_*soń 9 x11 automation

我正在尝试自动从生产系统上的visualvm获取CPU采样器数据.但要做到这一点,我需要一种方法来自动化Xvfb中的任务.

我发现xdotool很适合这种自动化.现在我有以下脚本:

Xvfb $DISPLAY -pixdepths 32 -screen 0 1280x1024x24 >/dev/null 2>&1 & XPID=$!

echo "Before twm"
#twm -display $DISPLAY &
gnome-wm &

#$VISUALVM --openpid $PID_TO_OPEN &

echo "Before gimp"
gimp &

sleep 5
xdotool search "GNU.*" windowactivate windowfocus key alt+f n

sleep 3
DISPLAY=:0.0
xwd -display :9.0 -root | xwdtopnm | pnmtopng > out.png

qiv out.png
Run Code Online (Sandbox Code Playgroud)

它应该打开Xvfb,运行gimp,然后单击File-> New.当我在普通X中执行此操作时会这样做,但是当我在Xvfb中执行此脚本时,看起来它不会传递键盘事件.我用鼠标测试它,它是相同的,xdotool没有传递(或Xvfb不接受)来自鼠标的事件.

有没有人遇到过这个问题并知道解决方案?