Automation 使用xdool和Xvfb实现自动化

Automation 使用xdool和Xvfb实现自动化,automation,x11,Automation,X11,我试图在生产系统上从visualvm自动获取CPU采样器数据。但要做到这一点,我需要一种在Xvfb内部自动执行任务的方法 我发现xdool对这种自动化很有好处。 现在我有以下脚本: Xvfb $DISPLAY -pixdepths 32 -screen 0 1280x1024x24 >/dev/null 2>&1 & XPID=$! echo "Before twm" #twm -display $DISPLAY & gnome-wm & #$VI

我试图在生产系统上从visualvm自动获取CPU采样器数据。但要做到这一点,我需要一种在Xvfb内部自动执行任务的方法

我发现xdool对这种自动化很有好处。 现在我有以下脚本:

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
它应该打开Xvfb,运行gimp,然后单击文件->新建。当我在普通X中执行时,它会这样做,但当我在Xvfb中执行此脚本时,它看起来不会传递键盘事件。 我用鼠标对它进行了测试,结果是一样的,xdotool不从鼠标传递(或Xvfb不接受)事件


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

我也有同样的问题。我希望有人知道答案……对我来说,使用
xdoool类型
而不是
xdoool键
是有效的。另一种选择是,您可以尝试
xvkbd
。命令将
gimp
运行到X显示器中,并通过VNC连接:
sudo x11vnc-storepasswd 1234/tmp/vncpass&&xvfb run--listen tcp--server num 30--auth file/tmp/xvfb.auth-s“-ac-screen 0 1920x1080x24”gimp&x11vnc-rfbport 4544-rfbauth/tmp/vncpass-display:30-forever-auth/tmp/xvfb.auth&vncviewer-passwd/tmp/vncpass$(主机名):4544