Автоматизация графического интерфейса пользователя с использованием Pyautogui, Python

PYAUTOGUI — это модуль автоматизации, предоставляемый Python для управления функциями клавиатуры и мыши через программу. Этот модуль имеет почти все функции, которые могут выполняться с помощью клавиатуры и мыши. Мы можем использовать эти функции для автоматизации действий мыши и клавиатуры.

Установка Pyautogui

Перед использованием функций модуля PYAUTOGUI мы должны его установить. Чтобы установить этот модуль, выполните следующую команду в Терминале.

$ pip install pyautogui

OR

$ pip3 install pyautogui

Теперь PYAUTOGUI готов к использованию.

Получение разрешения дисплея

Перед автоматизацией действий мыши рекомендуется узнать разрешение дисплея. Мы можем получить разрешение дисплея, используя метод .size ()

PYAUTOGUI. См. Ниже получение разрешения экрана в форме «ширина X высота»:

Python 2.7.15+ (по умолчанию, 7 октября 2019 г., 17:39:04)
[GCC 7.4.0] в linux2

Для получения дополнительной информации введите «помощь», «авторские права», «кредиты» или «лицензия».

>>> import pyautogui
>>> width, height = pyautogui.size ()
>>> print (width)
1366
>>> print (height)
768

Это означает, что у нас есть 1366 пикселей в горизонтальном направлении отображения и 768 пикселей в вертикальном направлении отображения.

Перемещение мыши по дисплею

Итак, мы знаем разрешение нашего дисплея. Теперь мы можем перемещать мышь в любом месте дисплея в пределах разрешающей способности дисплея. Мы можем перемещать мышь, используя метод. moveTo () в PYAUTOGUI. Пример ниже перемещения мыши в позицию (100,100) за 2 секунды

>>> import pyautogui
>>> pyautogui.moveTo (100,100, duration = 2)

Мы передали три аргумента методу .moveTo (). Первые два аргумента являются обязательными и показывают позицию назначения, но третий аргумент не является обязательным. Если мы не передадим третий аргумент, мышь переместится к месту назначения в кратчайшие сроки.

Щелчок, прокрутка и перетаскивание мыши

PYAUTOGUI предоставляет несколько методов для управления мышью. действия. Мы можем щелкать, прокручивать и перетаскивать мышь разными способами.

Щелчок мышью может выполняться с помощью метода .click (). Перед щелчком наведите указатель мыши на нужный пиксель, затем используйте метод .click () для щелчка. Ниже приведен пример выполнения щелчка мышью. Пример ниже переместит мышь на (300,201) пиксель и щелкните мышью.

>>> import pyautogui
>>> pyautogui.moveTo (300,201)
>>> pyautogui.click ()

Вы можете дважды щелкнуть мышью, используя метод. doubleClick () .

>>> pyautogui.moveTo (300,201)
>>> pyautogui.doubleClick ()

PYAUTOGUI предоставляет метод . scroll () для прокрутки мыши вверх или вниз. Этот метод принимает целое число в качестве аргумента, затем прокручивает вверх или вниз в зависимости от целого числа. Если вы передадите положительное целое число, оно будет прокручиваться вверх, а для отрицательного целого числа — вниз. Сколько будет прокручиваться? Это зависит от значения целого числа.

>>> import pyautogui
>>> pyautogui.scroll (20)
>>> pyautogui .scroll (-20)

В приведенном выше примере сначала мышь прокрутит вверх на 20 единиц, а затем на 20 единиц вниз.

Операцию перетаскивания мыши также можно применить с помощью метода .dragTo () модуля PYAUTOGUI. Перетаскивание означает перемещение мыши с одновременным нажатием одной из кнопок мыши. Этот метод принимает три аргумента: первые два аргумента отображают координаты пункта назначения, а последний аргумент — это время продолжительности, которое означает, сколько времени потребуется, чтобы перейти к пункту назначения.

Чтобы увидеть перетаскивание. операции, откройте краску, разверните окно, выберите карандаш и выполните следующие команды в интерактивной оболочке. Код переместит указатель мыши на (138 229) пикселей за 2 секунды, а затем перетащит мышь от текущего пикселя к необходимому пикселю также через 2 секунды.

>>> import pyautogui
>>> pyautogui.moveTo (138, 229, duration = 2)
>>> pyautogui.dragTo (238, 229, duration = 2)
>>> pyautogui.dragTo ( 238, 329, duration = 2)
>>> pyautogui.dragTo (138, 329, duration = 2)
>>> pyautogui.dragTo (138, 229, duration = 2)

Приведенный выше код создаст квадрат в программе рисования путем перетаскивания мыши.

Как найти координаты каталога или значка файла

Чтобы найти координаты файла или каталога, используется метод .position () . Этот метод возвращает координаты, в которых в настоящий момент находится мышь. Выполните указанные шаги, чтобы найти координаты

  1. Откройте консоль python
  2. Введите position ()
  3. Перед нажатием ‘ ENTER ‘, переместите стрелку мыши к значку, где вы хотите найти координаты.
  4. Затем нажмите Enter, чтобы выполнить команду.

Обработка PAUSE и FAILSAFE

Вы пишете сценарий для автоматизации действий мыши, и вам нужна короткая пауза между каждой командой. Как ты с этим справишься? Будете ли вы использовать метод .sleep () модуля TIME после каждой команды? Но это увеличит длину вашего кода. Это можно сделать, установив в переменной pyautogui.PAUSE количество секунд, в которых вы хотите сделать паузу. Это создаст паузу после каждой команды. В приведенном ниже примере между каждой командой делается пауза в 3 секунды.

>>> import pyautogui
>>> pyautogui.PAUSE = 3
>>> pyautogui.moveTo (100,100)
>>> pyautogui.moveTo (200,200)

Python также имеет функцию FAILSAFE . Чтобы включить эту функцию, мы установили для pyautogui.FAILSAFE значение True. Как это работает? Например, ваш дисплей имеет разрешение 1366 X 768. Если вы переместите указатель мыши на (1500,1500), программа выйдет из строя, вызвав FailSafeException. Вы можете обработать это исключение либо с помощью оператора try and except, либо отключив pyautogui.FAILSAFE. Если отключить функцию FAILSAFE, программа не вызовет это исключение.

>>> import pyautogui
>>> pyautogui.FAILSAFE = False
>>> pyautogui.size ()
Размер (ширина = 1366, высота = 768)
>>> pyautogui.moveTo (1500,1500)
>>> pyautogui.moveTo (100,100)

В приведенном выше примере мы переместили мышь на (1500,1500) пикселей, но экран имеет (1366,768) пикселей. Программа проигнорировала это исключение.

Отправка строки с клавиатуры

PYAUTOGUI предоставляет возможность передачи строки с клавиатуры. Это можно сделать с помощью метода .typewrite () этого модуля. Перед передачей строки с клавиатуры сфокусируйтесь на окне, в которое вы собираетесь передать строку. Чтобы сфокусироваться на нужном окне, мы можем использовать метод .click ().

Мы использовали точку с запятой между двумя командами, поскольку она фокусируется на текстовом редакторе и передает строку одна за другой. Теперь вопрос в том, как передать клавиши «Alt» или «Shift». Эти ключи могут быть представлены короткими строковыми значениями. Некоторые строковые значения приведены ниже.

Строковые значения клавиш

Левая и правая клавиши ALT ‘altleft’, ‘altright’

Левая и правая клавиши SHIFT ‘shifttleft’, ‘shiftright’

Левая и правая клавиши CONTROL ‘ctrlleft’, ‘ctrlright’

PAGE UP и PAGE DOWN Клавиши pageup, pagedown

BACKSPACE и DELETE Клавиши ‘backspace’, ‘delete’

Вверх, вниз, влево и Клавиши со стрелками вправо ‘вверх’, ‘вниз’, ‘влево’, ‘вправо’

Клавиша CAPS LOCK ‘capslock’

Клавиша ENTER ‘enter’

Клавиша ESC ‘esc’

Клавиша TAB ‘tab’

Клавиши HOME и END «Home», «end»

F1 — F12 Клавиши «f1», «f2»,…. , ‘f12’

NUM LOCK Key ‘numlock’

PRTSC Key ‘printscreen’

INSERT Key ‘insert’

Чтобы передать один из вышеуказанных ключей, мы используем эти строковые значения в форме списка. Следующий пример поясняет это. Код передает «capslock» два раза. Первый раз в виде списка и второй раз в виде простой строки. Передача «capslock» в списке приводит к нажатию клавиши «CAPS LOCK». И второй ‘capslock’ просто напишите ‘capslock’ заглавными буквами, так как клавиша ‘CAPSLOCK’ нажимается первой.

>>> import pyautogui
>>> pyautogui. typewrite ([‘capslock’]); pyautogui.typewrite (‘capslock’)
CAPSLOCK >>> CAPSLOCK

Нажатие сочетаний клавиш

Ярлык — это комбинация клавиш для выполнения некоторых задач. Например, сочетание клавиш «Alt + F4» используется для закрытия текущего окна. Комбинацию клавиш также можно передать с клавиатуры с помощью модуля PYAUTOGUI. Чтобы нажать «Alt + F4», мы сначала нажимаем и удерживаем клавишу «Alt», а затем нажимаем клавишу «F4». После отпускания клавиши «F4» отпускаем клавишу «Alt». Здесь мы будем использовать методы .keyUp () и .keyDown () для нажатия комбинации клавиш. В следующем примере показано нажатие и удерживание клавиши «Alt» и одновременное нажатие и удерживание клавиши «F4».

import pyautogui
время импорта
pyautogui. keyDown (‘alt’)
pyautogui.keyDown ( time.sleep (.5)
pyautogui.keyUp (‘f4’)
pyautogui.keyUp (‘alt’)

ПРИМЕЧАНИЕ: В приведенном выше примере мы не использовали список строковых значений ‘Alt’ и Клавиша «F4». Список строковых значений передается только в метод .typewrite () .

Очень сложно нажать и удерживать клавишу ‘Alt’, а затем нажать клавишу ‘F4’ и после отпускания клавиши «F4» отпустите клавишу «Alt». Это можно сделать просто с помощью метода .hotkey () . Следующий пример проясняет концепцию.

import pyautogui
время импорта
pyautogui.hotkey (‘alt’, ‘f4’)

Создание и анализ снимка экрана

Мы также можем сделать снимок экрана с помощью python. Модуль Pyautogui предлагает метод .screenshot () для создания снимка экрана текущего экрана. Снимок экрана можно отобразить с помощью метода .show () . Выполните следующую команду, чтобы сделать снимок экрана и отобразить его.

>>> import pyautogui
>>> img = pyautogui.screenshot ()
>>> img.show ()

Когда вы запускаете вышеуказанные команды, чтобы сделать снимок экрана, он будет сохранен в переменной ‘img’. Теперь мы можем вызывать дополнительные методы для переменной img.

Мы можем получить кортеж значений RGB нашего требуемого пикселя, используя метод .getpixel () для переменной img. Аргумент, переданный методу .getpixel (), представляет собой кортеж, содержащий координаты x и y снимка экрана. Выполните следующую команду в интерактивной оболочке.

>>> img.getpixel ((2,3))
(85, 82, 74)

Далее мы можем получить размер изображения с помощью следующей команды

>>> img.size
(1366, 768)

Мы можем проверить, совпадают ли заданные пиксели экрана с заданным значением RGB или нет. Это можно сделать с помощью метода .pixelMatchesColor () .. Этому методу передается всего три аргумента. Первые два аргумента — это координаты x и y экрана, а третий аргумент — это кортеж значений RGB. Этот метод возвращает «True», если цвет совпадает с пикселем, в противном случае — «False». Этот метод можно использовать следующим образом

>>> pyautogui.pixelMatchesColor (2,3, (85,82,74))
True
>>> pyautogui.pixelMatchesColor (3,5, (52,85,74))
False

Мы ознакомились с некоторыми основами, а теперь в следующем В разделах мы увидим некоторые варианты использования автоматизации графического интерфейса с помощью модуля PYAUTOGUI.

Автоматическое открытие различных файлов для вас

Каждый день в вашем офисе вам нужно открывать много файлов вводить некоторые данные сотрудников вручную. Это немного скучно. Сначала перейдите в каталог документов, затем перейдите в другой каталог и откройте файл, затем вернитесь в каталог документов, перейдите в другой каталог и сделайте то же самое и т. Д.

Это можно сделать, просто написав скрипт на Python. Что вам нужно сделать, так это запустить только сценарий, и сценарий откроет все файлы.

Для выполнения этой задачи, прежде всего, вам нужно найти координаты следующих

  1. Значок каждого каталога
  2. Значок каждого файла
  3. Кнопка свертывания файлов

Как найти координаты, было объяснено ранее.

# импорт модуля pyautogui
import pyautogui

# создание паузы в 1,5 секунды после каждой команды
pyautogui.PAUSE = 1.5

# перемещение мыши к значку «Этот компьютер» на панели задач
pyautogui.moveTo (346,752)

# нажатие на значок «Этот компьютер»
pyautogui.click ()

# перемещение указатель мыши на значок каталога ‘Документы’
pyautogui.moveTo (95,184)

# щелчок по каталогу ‘Документы’
pyautogui.click ()

# перемещение мыши в каталог внутри каталога ‘Documents’
pyautogui.moveTo (249,107)

# двойной щелчок, чтобы открыть директорию ry
pyautogui.doubleClick ()

# перемещая мышь по файлу, чтобы открыть
pyautogui.moveTo (249,108)

# двойной щелчок по файлу, чтобы открыть
pyautogui.doubleClick ()

# перемещение мыши по кнопке сворачивания
pyautogui.moveTo (1310,47)

# щелчок, чтобы свернуть файл
pyautogui.click ()

В приведенном выше коде мы открываем только один файл. Точно так же вы можете расширить код, чтобы открывать несколько файлов.

Занятость в системе

Вы занимаетесь своей работой и не работаете с системой, но в вашей системе есть установленное приложение, которое может угадать, сидите ли вы без дела или работаете в системе, используя движение мыши. Итак, вы хотите автоматизировать перемещение мыши через каждый короткий промежуток времени.

Это можно сделать, написав небольшой скрипт на Python с использованием модуля PYAUTOGUI .

import pyautogui

# генерируем паузу в 5 секунд между движениями мыши
pyautogui. PAUSE = 5

try:
# Запуск бесконечного цикла
while True:
# перемещение мыши к (200,300) координат за 1 секунду
pyautogui.moveTo (200,300, duration = 1)

# перемещение мыши к координате (201,310) за 1 секунду
pyautogui.moveTo (201,310, duration = 1)

кроме KeyboardInterrupt:
print (‘Quiting’)

В приведенном выше коде мы перемещаем мышь из одного места в другое местоположение через каждые 5 секунд. Мы можем выйти из этого кода, нажав Ctrl + C.

Заключение

В этом блоге мы обсудили, как вы можете использовать Модуль PYAUTOGUI для автоматизации GUI системы. Были объяснены различные функции этого модуля, и вы можете автоматизировать почти все, что можно сделать с помощью клавиатуры и мыши, используя эти функции.

Оцените статью
nanomode.ru
Добавить комментарий