command-lineubuntumouseautomated-tests

Simulate mouse movement in Ubuntu


Problem

Am looking to automatically move the mouse cursor and simulate mouse button clicks from the command-line using an external script. Am not looking to:

Ideal Solution

What I'd like to do is the following:

  1. Edit a simple script file (e.g., mouse-script.txt).
  2. Add a list of coordinates, movement speeds, delays, and button clicks. For example:
    (x, y, rate) = (500, 500, 50)
    sleep = 5
    click = left
    
  3. Run the script: xsim < mouse-script.txt.

Question

How do you automate mouse movement so that it transitions from its current location to another spot on the screen, at a specific velocity? For example:

xdotool mousemove 500 500 --rate 50

The --rate 50 doesn't exist with xdotool.


Solution

  • on newer versions of Ubuntu (14.04+), you can use Autopilot, a UI testing tool for Ubuntu. It is made for creating and running user interface tests, but can also be used for basic GUI automation tasks.

    to install:

    $ sudo apt-get install python3-autopilot
    

    an example script (Python3) to automate mouse movement:

    #!/usr/bin/env python3
    
    from autopilot.input import Mouse
    
    mouse = Mouse.create()
    mouse.move(100, 50)
    mouse.click()
    

    You would run this just like any other Python3 script. Watch your mouse pointer move!