发现一个xdotool,是个神器
xdotool是linux下,类似”按键精灵“的工具,在一些自动测试时,经常用到
以上为xdotool正常使用
比如说:
模拟击键a
xdotool key a
模拟两个键alt+tab
xdotool key alt+Tab
自动输入word
xdotool type 'word'
模拟鼠标移动+点击,这会让鼠标移动到(x,y),然后点击鼠标左键。“1”代表鼠标左键,“2”则是滚轮,“3”则是右键。
xdotool mousemove 655 320 click 1
以上是比较基础的应用,也很常用,特别是在模拟一些操作的时候,非常好用
其实,xdotool还可以做一些其他功能,有时候起到巧妙作用
比如说 查找某个进程,有哪些窗体
xdotool search "XXXX"
如果存在,会列出该进程下所有窗体的编号(当然编号看起来不方便,但好歹有)
彷佛以下这条命令更加实用点
xdotool search "XXXX" getwindowname %@
这样可以显示所有窗体的title(如果不加%@ 则显示第一条,反而不是很好用)
还可以以下一些命令:
xdotool search . getwindowpid %@
//查找所有窗体,所在的 进程号(进程号一样,说明是同一个进程)
xdotool search . getwindowname %@
//查找所有窗体,并显示窗体的title
以下内容是抄的,以便不时之需
xdotool key [key name] xdotool key alt+Tab xdotool type '' xdotool search --name [window name] key [key name] 查找窗口并按键 xdotool mousemove x y xdotool mousemove x y click 1 1左键 2滚轮 3右键 4向上滚 5向下滚 xdotool search --title "..." xdotool key Return 模拟回车键 xdotool keydown/keyup super 按下Win键不放 xdotool key Super_L 左Win watch -n 10 xdotool key Return 搭配watch使用,实现循环10秒敲击一次回车 xdotool search "Firefox" 获取窗口名称 xdotool getwindowname 39845889 在以上指令列出的ID中获取容器名称 xdotool getactivewindow 获取当前激活的窗口 xdotool windowminimize 最小化窗口 xdotool windowminimize $(xdotool getactivewindow) 最小化当前窗口 xdotool key ctrl+l BackSpace 点击ctrl+l,然后是BackSpace键 xdotool search --name gdb key ctrl+c 在窗口名为gdb上点击ctrl+c xdotool mousemove_relative 10 10 鼠标相对移动 xdotool mousemove_relative --sync 10 10 异步鼠标相对移动 xdotool click -repeat 1 3 鼠标右键点击1次 xdotool mousedown/mouseup xdotool getmouselocation 获取鼠标位置 xdotool getmouselocation --shell 获取鼠标位置(便于获取数据) 1 eval $(xdotool getmouselocation --shell) 2 echo $X,$Y 即可获得X,Y位置 xdotool getactivewindow windowmove 10 10 移动当前窗口位置
满屏源代码,一把辐射泪,都云编程痴,谁解其中味!