需要一个自动点击工具来自动点击Linux中弹出窗口的OK按钮

时间:2012-02-22 11:17:38

标签: linux user-interface automation

我需要一个类似于ClickOff的工具,但此工具可以在Linux上运行。

我尝试了几个工具,例如xautoclick,但它不是我想要的,我想要的工具可以在弹出窗口出现时自动点击OK按钮(例如webbrowser弹出窗口)。

ClickOff对我来说很好,但问题是它无法在Linux上运行。所以任何知道这样一个工具或建议我的方法的人都可以在Linux上编写类似的工具。我的Linux经验很谦虚,所以请帮助我。

1 个答案:

答案 0 :(得分:3)

这可能适合你。

  

xdotool允许您以编程方式(或手动)模拟键盘输入   和鼠标活动,移动和调整窗口大小等。它使用   X11的XTEST扩展和其他Xlib功能。

     

对扩展窗口管理器提示(也称为EWMH或。)有一些支持   NETWM)。

这样的东西可以在shell脚本中实现自动化 BUT 波纹管移动你的光标,所以如果你想让它像一些背景守护进程一样不断运行你应该保存你的原始鼠标坐标并将它设置回来事后......我个人讨厌这样的事情,因为这会偷走你的(窗口)焦点......:

  1. 按标题搜索窗口:

    export WINID=`xdotool --onlyvisible --name YOURAPP`
    
  2. 收集更多窗口信息 了解窗户的高度和宽度通常很有用。

    WIDTH=`xwininfo -all -int -id $WINID|grep Width|cut -d ':' -f2 |cut -d ' ' -f2`
    HEIGHT=`xwininfo -all -int -id $WINID|grep Height|cut -d ':' -f2 |cut -d ' ' -f2`
    
  3. 将鼠标放置到窗口的上角:将鼠标的位置设置为偏离窗口左上角的0,0,首先使用

    xwininfo to determine window position...
    
    TOP_LEFT_X=`xwininfo -all -int -id $WINID|grep Absolute |grep X |cut -d ':' -f2 |sed 's/ //g'`
    TOP_LEFT_Y=`xwininfo -all -int -id $WINID|grep Absolute |grep Y |cut -d ':' -f2 |sed 's/ //g'`
    

    现在使用这些坐标绝对定位鼠标。

    xdotool mousemove $TOP_LEFT_X $TOP_LEFT_Y
    

    注意:使用弯曲的角落窗口,此时单击可以选择另一个窗口,然后取消对焦      你的目标。

  4. 您可以根据百分比计算相对位置,例如:使用“bc”工具 命令行:

    CENTER_X=`echo $WIDTH/2|bc`
    CENTER_Y=`echo $HEIGHT/2|bc`
    
  5. 移动光标:

    xdotool mousemove_relative $CENTER_X $CENTER_Y
    

    如果你想让指针水平居中,但是底部上方有135个像素 窗口:

    xdotool mousemove_relative $CENTER_X `echo $HEIGHT-135|bc`
    
  6. 执行输入:

    xdotool click 1