Piton

GUI automatizálás Pyautogui, Python használatával

GUI automatizálás Pyautogui, Python használatával
PYAUTOGUI egy automatizálási modul, amelyet a Python biztosít a billentyűzet és az egér funkcióinak programon keresztüli vezérléséhez. Ez a modul szinte minden olyan funkcióval rendelkezik, amelyet billentyűzet és egér végezhet. Ezekkel a funkciókkal automatizálhatjuk az egér és a billentyűzet műveleteit.

Pyautogui telepítése

Mielőtt használná a PYAUTOGUI modult, telepítenünk kell. A modul telepítéséhez futtassa a következő parancsot a Terminálban.

$ pip install pyautogui

VAGY

$ pip3 telepítse a pyautogui-t

Most PYAUTOGUI használatra kész.

A kijelző felbontásának megadása

Az egérműveletek automatizálása előtt jó gyakorlat ismerni a kijelző felbontását. Használhatjuk a kijelző felbontását .méret() a metódusa

PYAUTOGUI.  Az alábbiakban olvashatja el a képernyő felbontásának megadását „szélesség X magasság” formájában:

Python 2.7.15+ (alapértelmezett, 2019. október 7., 17:39:04)
[ÖET 7.4.0] a linux2-n

Írja be a „help”, a „copyright”, a „credits” vagy a „license” szót további információkért.

>>> import pyautogui
>>> szélesség, magasság = pyautogui.méret()
>>> nyomtatás (szélesség)
1366
>>> nyomtatás (magasság)
768

Ez azt jelenti, hogy a kijelző vízszintes irányában 1366, a függőleges irányban pedig 768 pixel van.

Az egér mozgatása a kijelzőn

Tehát tudjuk a kijelzőnk felbontását. Most az egeret a kijelző bármely pontján mozgathatjuk a kijelző felbontásának határain belül. Használhatjuk az egeret .költözik() PYAUTOGUI módszere.  Az alábbi példa az egér 2 másodperc alatt (100,100) helyzetbe mozgatásáról

>>> import pyautogui
>>> pyautogui.moveTo (100,100, időtartam = 2)

Három érvet adtunk át .moveTo () metódus. Az első két érv kötelező és a rendeltetési hely helyzetét mutatja, de a harmadik érv nem kötelező. Ha nem adjuk át a harmadik argumentumot, akkor az egér rövid időn belül a cél felé mozog.

Kattintás, görgetés és egér húzása

A PYAUTOGUI néhány módszert kínál az egérműveletek vezérlésére. Különböző módszerekkel kattinthatunk, görgethetünk és húzhatunk az egérrel.

Az egér kattintási művelete a .click () metódus. Kattintás előtt vigye az egeret a kívánt képpontra, majd használja .kattintson a () metódusra. Az alábbiakban bemutatjuk az egér kattintási műveletét.  Az alábbi példa az egeret (300 201) pixelre mozgatja, és kattintson az egérrel.

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

A gombbal duplán kattinthat az egérre .dupla kattintás() módszer.

>>> pyautogui.moveTo (300,201)
>>> pyautogui.dupla kattintás()

A PYAUTOGUI egy módszert nyújt .tekercs() az egér felfelé vagy lefelé görgetéséhez. Ez a módszer egész számot vesz fel argumentumként, majd az egész számtól függően felfelé vagy lefelé görget. Ha pozitív egész számot ad át, akkor az felfelé, negatív egész számra pedig lefelé görget. Mennyit fog görgetni? Ez függ az egész szám értékétől.

>>> import pyautogui
>>> pyautogui.görgetés (20)
>>> pyautogui.görgetés (-20)

A fenti példában először az egér görget felfelé 20 egységet, majd 20 egységet lefelé.

Az egér húzási művelete szintén alkalmazható .dragTo () PYAUTOGUI modul módszere. A húzás azt jelenti, hogy az egeret mozgatja, miközben lenyomja az egyik egérgombot. Ehhez a módszerhez három argumentumra van szükség, az első két argumentum a cél koordinátáinak megjelenítésére, az utolsó argumentum pedig az időtartam időtartama, ami azt jelenti, hogy mennyi idő kell a célba lépéshez.

A húzási művelet megtekintéséhez nyissa meg a festéket, maximalizálja az ablakot, válassza ki a ceruzát, és futtassa a következő parancsokat az interaktív héjba.  A kód 2 másodperc alatt az egeret (138 229) pixelre mozgatja, majd 2 másodperc alatt az egeret az aktuális képpontról a kívánt képpontra is húzza.

>>> import pyautogui
>>> pyautogui.moveTo (138, 229, időtartam = 2)
>>> pyautogui.dragTo (238, 229, időtartam = 2)
>>> pyautogui.dragTo (238, 329, időtartam = 2)
>>> pyautogui.dragTo (138, 329, időtartam = 2)
>>> pyautogui.dragTo (138, 229, időtartam = 2)

A fenti kód az egér húzásával négyzetet képez a festékprogramon.

Hogyan lehet megtalálni a címtár vagy a fájl ikonjának koordinátáit

Egy fájl vagy egy könyvtár koordinátáinak megkeresése, .pozíció() módszert alkalmaznak. Ez a módszer visszaadja azokat a koordinátákat, amelyeken az egér jelenleg tartózkodik. Kövesse a megadott lépéseket a koordináták megtalálásához

  1. Nyissa meg a python konzolt
  2. Típus pozíció ()
  3. Az 'ENTER' gomb megnyomása előtt vigye az egér nyílját az ikonra, ahol koordinátákat szeretne találni
  4. Ezután nyomja meg az Enter billentyűt a parancs végrehajtásához

A SZÜNET és a HIBÁK kezelése

Az egér műveleteinek automatizálásához szkriptet írsz, és rövid szünetet kell tartanod az egyes parancsok között. Hogyan fogja kezelni? Használni fogja .alvás() a metódusa IDŐ modul minden parancs után? De ez növeli a kód hosszát. Ez beállítással történhet pyautogui.SZÜNET változó a szünet kívánt másodpercek számáig. Ez minden parancs után szünetet hoz létre.  Az alábbi példa 3 másodperc szünetet tart az egyes parancsok között.

>>> import pyautogui
>>> pyautogui.SZÜNET = 3
>>> pyautogui.moveTo (100,100)
>>> pyautogui.moveTo (200 200)

A Pythonnak van egy ÜZEMBIZTOS funkció. Ennek a szolgáltatásnak az engedélyezéséhez állítsuk be a pyautogui-t.HIBÁS a True-hoz. Hogyan működik ez? Például a kijelzője felbontása 1366 X 768. Ha az egeret a (1500,1500) helyre állítja, a program összeomlik a FailSafeException emelésével. Ezt a kivételt kezelheti a try and kivétel utasítás használatával, vagy a pyautogui letiltásával.ÜZEMBIZTOS. A FAILSAFE funkció letiltásával a program nem fogja felvetni ezt a kivételt.

>>> import pyautogui
>>> pyautogui.FAILSAFE = Hamis
>>> pyautogui.méret()
Méret (szélesség = 1366, magasság = 768)
>>> pyautogui.moveTo (1500,1500)
>>> pyautogui.moveTo (100,100)

A fenti példában az egeret (1500 1500) pixelre mozgattuk, de a képernyőn (1366 768) pixel van. A program figyelmen kívül hagyta ezt a kivételt.

String küldése a billentyűzetről

A PYAUTOGUI egy olyan funkciót biztosít, amellyel átadhat egy karakterláncot a billentyűzetről. Ez megtehető a .typewrite () metódus ennek a modulnak. Mielőtt átadná a karakterláncot a billentyűzetről, fókuszáljon arra az ablakra, ahová át szeretné adni a karakterláncot. A szükséges ablakra összpontosítva használhatjuk .click () metódus.

Vessünk pontosvesszőt a két parancs közé, mivel az a szövegszerkesztőre összpontosít, és egymás után adja át a karakterláncot. Most az a kérdés, hogy miként adhatjuk át az „Alt” vagy a „Shift” billentyűt. Ezeket a kulcsokat rövid karakterláncokkal lehet ábrázolni. Néhány karakterlánc értéket az alábbiakban adunk meg.

Kulcsok karakterláncai
Bal és Jobb ALT billentyűk: „balra”, „jobbra”
Bal és Jobb SHIFT billentyűk: 'shiftleft', 'shiftright'
Bal és Jobb Vezérlőgombok "ctrlleft", "ctrlright"
PAGE UP és PAGE DOWN Gombok „pageup”, „pagedown”
BACKSPACE és DELETE Billentyűk 'Backspace', 'Delete "
Fel, Le, Bal és Jobb nyílgombok „fel”, „lefelé”, „balra”, „jobbra”
CAPS LOCK kulcs 'capslock'
ENTER kulcs „enter”
ESC kulcs „esc”
TAB kulcs 'fül'
HOME és END Kulcsok 'home', 'end'
F1 – F12 billentyűk: „f1”, „f2”,… . , „f12”
NUM LOCK kulcs 'numlock'
PRTSC kulcs "nyomtató képernyő"
INSERT kulcs "beillesztés"

A fenti kulcsok egyikének átadásához ezeket a karakterlánc-értékeket lista formájában használjuk. A következő példa ezt tisztázni fogja.  A kód kétszer halad el a „capslock” mellett. Első alkalommal lista és másodszor egyszerű karakterlánc formájában. A „capslock” elhaladása a listában megnyomja a „CAPS LOCK” gombot. A második „capslock” pedig egyszerűen írja be a „capslock” szót nagybetűvé, amikor először megnyomja a „CAPSLOCK” gombot.

>>> import pyautogui
>>> pyautogui.írógép (['capslock']); pyautogui.írógép ('capslock')
CAPSLOCK >>> CAPSLOCK

A Parancsikonok megnyomása

A parancsikon a billentyűkombináció egyes feladatok végrehajtásához. Például az 'Alt + F4' parancsikont használjuk az aktuális ablak bezárására. A billentyűkombináció a PYAUTOGUI modul segítségével is átadható a billentyűzetről. Az „Alt + F4” lenyomásához először nyomja meg és tartsa lenyomva az „Alt” billentyűt, majd nyomja meg az „F4” gombot. Az 'F4' kulcs elengedése után felengedjük az 'Alt' billentyűt. Itt fogjuk használni .keyUp () és .keyDown () módszerek a billentyűkombináció megnyomásához.  A következő példa az „Alt” billentyű lenyomva tartását, az „F4” billentyű együttes lenyomását és nyomva tartását mutatja.

behozni pyautogui
import idő
pyautogui.keyDown ('alt')
pyautogui.keyDown (<'f4')
idő.alvás(.5)
pyautogui.keyUp ('f4')
pyautogui.keyUp ('alt')

JEGYZET: A fenti példában nem az „Alt” és az „F4” kulcs karakterlánc-listáját használtuk. A karakterlánc-értékek listáját csak a rendszer továbbítja .írógéppel ír() módszer.

Nagyon bonyolult az „Alt” billentyű lenyomva tartása, majd az „F4” billentyű lenyomása, az „F4” billentyű elengedése után az „Alt” gomb felengedése. Ez egyszerűen felhasználható .gyorsbillentyű () módszer. A következő példa egyértelművé teszi a koncepciót.

behozni pyautogui
import idő
pyautogui.gyorsbillentyű ('alt', 'f4')

Képernyőkép készítése és elemzése

Képernyőképet is készíthetünk a python segítségével. Pyautogui modul kínál .képernyőkép () módszer az aktuális képernyő képernyőképének elkészítéséhez. A képernyőkép a (z) használatával jeleníthető meg .előadás() módszer. Futtassa a következő parancsot egy képernyőkép elkészítéséhez és megjelenítéséhez.

>>> import pyautogui
>>> img = pyautogui.képernyőkép ()
>>> img.előadás()

Amikor a fenti parancsokat futtatja a képernyőkép készítéséhez, az az 'img' változóba kerül. Most további módszereket hívhatunk az 'img' változóra.

Használatával megkaphatjuk a szükséges pixelünk RGB-értékeinek dupláját .getpixel () módszer az 'img' változón. Érvelés átadva .A getpixel () metódus egy olyan kép, amely tartalmazza a képernyőkép x és y koordinátáit. Futtassa a következő parancsot az interaktív shellbe.

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

A következő paranccsal megkaphatjuk a kép méretét

>>> img.méret
(1366, 768)

Ellenőrizhetjük, hogy a képernyő adott képpontja egyezik-e az adott RGB értékkel vagy sem. Ez megtehető a .pixelMatchesColor () módszer. Összesen három érvet adunk át ennek a módszernek. Az első két argumentum a képernyő x és y koordinátája, a harmadik argumentum az RGB-értékek duplája. Ez a módszer „True” értéket ad vissza, ha a szín megegyezik a pixellel, különben „False”. Ez a módszer a következőképpen alkalmazható

>>> pyautogui.pixelMatchesColor (2,3, (85,82,74))
Igaz
>>> pyautogui.pixelMatchesColor (3,5, (52,85,74))
Hamis

Láttunk néhány alapot, és a következő szakaszokban a GUI PYAUTOGUI modul használatával történő automatizálásának néhány esetét láthatjuk.

Különböző fájlok automatikus megnyitása az Ön számára

Az irodában minden nap sok fájlt kell megnyitnia az alkalmazottak egyes adatainak kézi megadásához. Ez egy kicsit unalmas dolog. Először lépjen a Dokumentumok könyvtárba, majd menjen egy másik könyvtárba, és nyisson meg egy fájlt, majd térjen vissza a Dokumentum könyvtárba, lépjen egy másik könyvtárba, és tegye ugyanezt stb.

Ezt egyszerűen egy python szkript írásával lehet megtenni. Csak a parancsfájlt kell futtatnia, és a parancsfájl megnyitja az összes fájlt.

A feladat végrehajtásához először is meg kell találnia a következők koordinátáit

  1. Minden könyvtár ikonja
  2. Minden fájl ikonja
  3. A fájlok gombjának minimalizálása

A koordináták megtalálásának módját korábban kifejtettük.

# pyautogui modul importálása
behozni pyautogui
# 1 szünet generálása.5 másodperc minden parancs után
pyautogui.SZÜNET = 1.5
# mozgassa az egeret a tálca 'This PC' ikonjára
pyautogui.moveTo (346 752)
# kattintson a 'This PC' ikonra
pyautogui.kattintson ()
# mozgassa az egeret a „Dokumentumok” könyvtár ikonra
pyautogui.moveTo (95 184)
# kattintva a 'Dokumentumok' könyvtárra
pyautogui.kattintson ()
# mozgassa az egeret a 'Documents' könyvtárban lévő könyvtárba
pyautogui.moveTo (249,107)
# dupla kattintással megnyithatja a könyvtárat
pyautogui.dupla kattintás()
# az egér mozgatása a fájlon a megnyitáshoz
pyautogui.moveTo (249,108)
# dupla kattintás a fájlra a megnyitáshoz
pyautogui.dupla kattintás()
# az egér mozgatása a kicsinyítés gombra
pyautogui.moveTo (1310,47)
# kattintással minimalizálhatja a fájlt
pyautogui.kattintson ()

A fenti kódban csak egy fájlt nyitunk meg. Hasonlóképpen kiterjesztheti a kódot több fájl megnyitásához.

Elfoglaltnak látszik a rendszeren

Munkája van, és nem a rendszeren dolgozik, de a rendszerében van egy olyan alkalmazás, amely képes az egér mozgatásával kitalálni, hogy tétlen-e vagy a rendszeren dolgozik. Tehát automatizálni szeretné az egeret, hogy minden rövid idő után elmozduljon.

Ezt úgy tehetjük meg, hogy egy kis python szkriptet írunk a PYAUTOGUI modul.

behozni pyautogui
# 5 másodperces szünet generálása az egér mozgatása között
pyautogui.SZÜNET = 5
próbáld ki:
# Végtelen hurok futása
míg True:
# egér mozgatása (200 300) koordinátára 1 másodperc alatt
pyautogui.moveTo (200 300, időtartam = 1)
# mozgatja az egeret (201,310) koordinátára 1 másodperc alatt
pyautogui.moveTo (201 310, időtartam = 1)
kivéve a KeyboardInterrupt:
nyomtatás ('kilépés')

A fenti kódban az egeret 5 másodpercenként egyik helyről a másikra mozgatjuk. Kiléphetünk a kódból a „Ctrl + C” megnyomásával.

Következtetés

Ebben a blogban megvitattuk, hogyan használhatja a PYAUTOGUI modult a rendszer GUI automatizálásához. Ennek a modulnak a különféle funkcióit elmagyarázták, és szinte mindent automatizálhat, ami a billentyűzet és az egér használatával elvégezhető e funkciók használatával.

Hogyan lehet megváltoztatni a bal és jobb egérgombokat a Windows 10 PC-n
Elég általános, hogy az összes számítógépes egéreszközt ergonómikusan a jobbkezes felhasználók számára tervezték. De vannak olyan egéreszközök, amelye...
Az egérkattintások emulálása az egérrel a Clickless Mouse használatával a Windows 10 rendszerben
Ha az egeret vagy a billentyűzetet nem megfelelő testtartásban, túlzott használat mellett használhatja, számos egészségügyi problémát okozhat, beleért...
Ezekkel az ingyenes eszközökkel adja hozzá az egérmozdulatokat a Windows 10 rendszerhez
Az elmúlt években a számítógépek és az operációs rendszerek nagymértékben fejlődtek. Volt idő, amikor a felhasználóknak parancsokkal kellett navigálni...