2010-06-06 117 views
11

问题模拟鼠标移动

在寻找自动地从使用外部脚本命令行移动鼠标光标并模拟鼠标按钮点击。我并不想:

  • 记录鼠标移动和播放(例如,xnee,xmacro)
  • 瞬间从一个位置移动鼠标到另一个(例如,xdotool,Python的warp_pointer)

理想的解决方案

我想要做的是以下几点:

  1. 编辑一个简单的脚本文件(例如,mouse-script.txt)。
  2. 添加坐标,移动速度,延迟和按钮点击的列表。例如:
     
    (x, y, rate) = (500, 500, 50) 
    sleep = 5 
    click = left 
    
  3. 运行脚本:xsim < mouse-script.txt

问题

你怎么自动鼠标移动,使其从当前位置到屏幕上的另一点转变,在一个特定的速度?例如:

xdotool mousemove 500 500 --rate 50 

--rate 50xdotool存在。

回答

13
  1. 下载xaut为Python
  2. 按照README说明
  3. 运行:
     
    sudo apt-get install swig x11proto-xext-dev libx11-dev libxtst-dev 
    cd /usr/local/src 
    tar zxf xaut-0.2.0.tar.gz 
    ./configure 
    
  4. 编辑src/Makefile
  5. 更改CFLAGS线如下:
     
    CFLAGS = -Wall -fPIC -fno-stack-protector
  6. 运行:
     
    make 
    
  7. 复制/usr/local/src/xaut-0.2.0/python/build/lib/*到一个新的目录。
  8. 更改为新目录。
  9. 复制以下脚本粘贴到mm.py
     
    import xaut 
    mouse = xaut.mouse() 
    delay mouse.move_delay(100) 
    mouse.move(500, 500) 
    
  10. 运行脚本:
     
    python mm.py
+0

此外,当您执行步骤abobe时,它将在Ubuntu 11.10上失败。首先在makefile文件中,我必须添加libX11.so的绝对路径,它不在make/usr/local/lib中,而是在usr/local/lib/i386-linux-gnu中。然后,当你修复它可以再次编译。所以在makefile中将ld -shared更改为gcc -shared,就是这样 – 2012-03-03 02:38:59

+0

任何想法如何在没有*外部库/工具的情况下完成这些任务* – Jewenile 2017-07-22 17:40:45

6

在Ubuntu(14.04+)的新版本,你可以使用Autopilot,为Ubuntu的UI测试工具。它用于创建和运行用户界面测试,但也可用于基本的GUI自动化任务。

安装:

$ sudo apt-get install python3-autopilot 

一个示例脚本(Python3)自动mouse movement

#!/usr/bin/env python3 

from autopilot.input import Mouse 

mouse = Mouse.create() 
mouse.move(100, 50) 
mouse.click() 

你会运行这个就像任何其他Python3脚本。看你的鼠标指针移动!