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:
- Record mouse movement and playback (e.g., xnee, xmacro)
- Instantly move the mouse from one location to another (e.g., xdotool, Python's warp_pointer)
Ideal Solution
What I'd like to do is the following:
- Edit a simple script file (e.g.,
mouse-script.txt
). - Add a list of coordinates, movement speeds, delays, and button clicks. For example:
(x, y, rate) = (500, 500, 50) sleep = 5 click = left
- 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 spec开发者_JS百科ific velocity? For example:
xdotool mousemove 500 500 --rate 50
The --rate 50
doesn't exist with xdotool
.
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!
- Download
xaut
for Python - Follow the
README
instructions - Run:
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
- Edit
src/Makefile
- Change the
CFLAGS
line as follows:CFLAGS = -Wall -fPIC -fno-stack-protector
- Run:
make
- Copy
/usr/local/src/xaut-0.2.0/python/build/lib/*
to a new directory. - Change to that new directory.
- Copy and paste the following script into
mm.py
:import xaut mouse = xaut.mouse() delay mouse.move_delay( 100 ) mouse.move( 500, 500 )
- Run the script:
python mm.py
精彩评论