Моделирование движения мыши в Ubuntu

Проблема

Представляем вам автоматически перемещать курсор мыши и имитировать щелчки мыши из командной строки с помощью внешнего script. Не смотри:

  • Запись движения и воспроизведения мыши (например, xnee, xmacro)
  • Немедленно переместите мышь из одного места в другое (например, xdotool, Python warp_pointer)

Идеальное решение

Мне бы хотелось сделать следующее:

  • Отредактируйте простой файл script (например, mouse-script.txt).
  • Добавить список координат, скорости движения, задержки и нажатия кнопок. Например:
    (x, y, rate) = (500, 500, 50)
    sleep = 5
    click = left
    
  • Запустите script: xsim < mouse-script.txt.

Вопрос

Как вы автоматизируете движение мыши так, чтобы оно переходило из своего текущего местоположения в другое место на экране с определенной скоростью? Например:

xdotool mousemove 500 500 --rate 50

--rate 50 не существует с xdotool.

Ответ 1

  • Загрузите xaut для Python
  • Следуйте инструкциям README
  • 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
    
  • Изменить src/Makefile
  • Измените строку CFLAGS следующим образом:
    CFLAGS = -Wall -fPIC -fno-stack-protector
  • Run:
    make
    
  • Скопируйте /usr/local/src/xaut-0.2.0/python/build/lib/* в новый каталог.
  • Перейдите в этот новый каталог.
  • Скопируйте и вставьте следующий script в mm.py:
    import xaut
    mouse = xaut.mouse()
    delay mouse.move_delay( 100 )
    mouse.move( 500, 500 )
    
  • Запустите script:
    python mm.py

Ответ 2

в новых версиях Ubuntu (14.04+) вы можете использовать Autopilot, инструмент для тестирования UI для Ubuntu. Он создан для создания и запуска тестов пользовательского интерфейса, но также может использоваться для основных задач автоматизации графического интерфейса.

для установки:

$ sudo apt-get install python3-autopilot

пример script (Python3) для автоматизации движения мыши:

#!/usr/bin/env python3

from autopilot.input import Mouse

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

Вы запускали бы это, как и любой другой Python3 script. Следите за движением указателя мыши!