Jaki jest najprostszy sposób na symulację klawiatury i myszy w Pythonie?

Muszę zrobić kilka makr i chcę wiedzieć, jaki jest najbardziej zalecany sposób, aby to zrobić.

Więc muszę coś napisać i kliknąć w kilka miejsc z nim i muszę emulować klawisz TAB do.

Author: Nakilon, 2010-05-07

4 answers

Wykonuję zautomatyzowane testy w Pythonie. Zazwyczaj używam:

http://www.tizmoi.net/watsup/intro.html
Edit: Link nie działa, wersja zarchiwizowana: https://web.archive.org/web/20100224025508/http://www.tizmoi.net/watsup/intro.html

Http://www.mayukhbose.com/python/IEC/index.php

Nie zawsze (prawie nigdy) symuluję naciśnięcia klawiszy i ruch myszy. Zwykle używam COM do ustawiania wartości obiektów windows i zadzwoń do nich .metody click ().

Możesz wysyłać sygnały klawiatury za pomocą tego:

import win32com.client

shell = win32com.client.Dispatch("WScript.Shell")
shell.SendKeys("^a") # CTRL+A may "select all" depending on which window's focused
shell.SendKeys("{DELETE}") # Delete selected text?  Depends on context. :P
shell.SendKeys("{TAB}") #Press tab... to change focus or whatever

To wszystko jest w Windows. Jeśli jesteś w innym środowisku, nie mam pojęcia.

 27
Author: Ishpeck,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-11-11 09:16:23

Może szukasz Sendkeys ?

SendKeys jest modułem Pythona dla Okna, które mogą wysłać jeden lub więcej naciśnięcia klawiszy lub kombinacje klawiszy do aktywnego okna.

Wydaje się, że jest to tylko windows

Masz też pywinauto (skopiowane z mojego so odpowiedz )

Pywinauto jest zbiorem open-source (LGPL) moduły do używania Pythona jako GUI automation "driver" Dla Windows NT systemy operacyjne oparte (NT/W2K/XP).

I przykład ze strony

> from pywinauto import application
> app = application.Application.start("notepad.exe")
> app.notepad.TypeKeys("%FX")
> app.Notepad.MenuSelect("File->SaveAs")
> app.SaveAs.ComboBox5.Select("UTF-8")
> app.SaveAs.edit1.SetText("Example-utf8.txt")
> app.SaveAs.Save.Click()
 16
Author: joaquin,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 12:09:45

Pyautogui to świetny pakiet do wysyłania klawiszy i automatyzacji kilku zadań związanych z klawiaturą / myszą. Sprawdź sterowanie klawiaturą i myszą za pomocą automatyzacji GUI i dokumentację PyAutoGUI .

 10
Author: Mitesh Budhabhatti,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-12-09 15:20:06

Możesz użyć Biblioteki PyAutoGUI dla Pythona, który działa na systemach Windows, macOS i Linux.

Mysz

Oto prosty kod, aby przesunąć mysz na środek ekranu:

import pyautogui
screenWidth, screenHeight = pyautogui.size()
pyautogui.moveTo(screenWidth / 2, screenHeight / 2)

Strona Docs: funkcje sterowania myszką .

Podobne pytanie: sterowanie myszą za pomocą Pythona .

Klawiatura

Przykład:

pyautogui.typewrite('Hello world!')                 # prints out "Hello world!" instantly
pyautogui.typewrite('Hello world!', interval=0.25)  # prints out "Hello world!" with a quarter second delay after each character

Strona Docs: funkcje sterowania klawiaturą .


More reading: Controlling the Klawiatura i mysz z automatyzacją GUI (Rozdział 18 e-booka).

Podobne pytania:

 3
Author: kenorb,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-01-07 14:55:56