„Python“

GUI automatizavimas naudojant Pyautogui, Python

GUI automatizavimas naudojant Pyautogui, Python
PYAUTOGUI yra „Python“ pateiktas automatikos modulis, skirtas valdyti klaviatūros ir pelės funkcijas per programą. Šis modulis turi beveik visas funkcijas, kurias gali atlikti klaviatūra ir pelė. Šias funkcijas galime naudoti pelės ir klaviatūros veiksmams automatizuoti.

„Pyautogui“ diegimas

Prieš naudojant PYAUTOGUI modulį, mes turime jį įdiegti. Norėdami įdiegti šį modulį, „Terminal“ vykdykite šią komandą.

$ pip įdiegti pyautogui

ARBA

$ pip3 įdiekite pyautogui

Dabar PYAUTOGUI yra paruoštas naudoti.

Kaip gauti ekrano skiriamąją gebą

Prieš automatizuojant pelės veiksmus, rekomenduojama žinoti ekrano skiriamąją gebą. Ekrano skiriamąją gebą galime gauti naudodami .dydis () metodas

PYAUTOGUI.  Žiūrėkite žemiau, kaip gauti ekrano skiriamąją gebą „plotis X aukštis“:

„Python 2“.7.15+ (numatytasis, 2019 m. Spalio 7 d., 17:39:04)
[PĮB 7.4.0] „Linux2“

Norėdami gauti daugiau informacijos, įveskite „pagalba“, „autorių teisės“, „kreditai“ arba „licencija“.

>>> importuoti pyautogui
>>> plotis, aukštis = pyautogui.dydis ()
>>> spausdinti (plotis)
1366 m
>>> spausdinti (aukštis)
768

Tai reiškia, kad horizontaliąja ekrano kryptimi turime 1366 taškus, o vertikalia - 768 pikselius.

Pajudinti rodomą pelę

Taigi mes žinome savo ekrano skiriamąją gebą. Dabar pelę galime perkelti bet kurioje ekrano vietoje, neviršydami ekrano skiriamosios gebos. Mes galime judinti pelę naudodami .Pereiti prie() PYAUTOGUI metodas.  Toliau pateiktas pavyzdys, kaip per 2 sekundes perkelti pelę į (100 100) padėtį

>>> importuoti pyautogui
>>> pyautogui.„moveTo“ (100 100, trukmė = 2)

Mes perdavėme tris argumentus .metodas „moveTo“). Pirmieji du argumentai yra privalomi ir rodo paskirties vietą, tačiau trečiasis argumentas nėra privalomas. Jei mes nepateiksime trečiojo argumento, pelė greitai pereis į tikslą.

Spustelėjimas, slinkimas ir tempimas pele

PYAUTOGUI pateikia keletą pelės veiksmų valdymo metodų. Mes galime spustelėti, slinkti ir vilkti pelę naudodami skirtingus metodus.

Spustelėjus pelės veiksmą galima atlikti naudojant .spustelėkite () metodą. Prieš spustelėdami perkelkite pelę iki reikiamo taško, tada naudokite .spustelėkite () metodą spustelėti. Toliau pateiktas pavyzdys, kaip atlikti pelės spustelėjimą.  Toliau pateiktame pavyzdyje pelė bus perkelta į (300 201) taškų ir spustelėkite pelę.

>>> importuoti pyautogui
>>> pyautogui.„moveTo“ (300,201)
>>> pyautogui.spustelėkite ()

Galite dukart spustelėti pelę naudodami .dukart spustelėkite() metodas.

>>> pyautogui.„moveTo“ (300,201)
>>> pyautogui.dukart spustelėkite()

PYAUTOGUI pateikia metodą .slinkti () norėdami slinkti pelę aukštyn arba žemyn. Šis metodas naudoja argumentą sveikąjį skaičių, tada slenka aukštyn arba žemyn, priklausomai nuo sveiko skaičiaus. Jei pateiksite teigiamą sveikąjį skaičių, jis slinks aukštyn, o neigiamas sveikasis skaičius - žemyn. Kiek jis slinks? Tai priklauso nuo sveiko skaičiaus vertės.

>>> importuoti pyautogui
>>> pyautogui.slinkti (20)
>>> pyautogui.slinkti (-20)

Pirmiau pateiktame pavyzdyje pirmiausia pelė slinks 20 vienetų aukštyn, o tada slinks žemyn 20 vienetų.

Pelės vilkimo operacija taip pat gali būti taikoma naudojant .vilkti () PYAUTOGUI modulio metodas. Vilkimas reiškia pelės judinimą, tuo pačiu paspaudus vieną iš pelės mygtukų. Šis metodas reikalauja trijų argumentų: pirmieji du argumentai, rodantys paskirties koordinates, o paskutinis argumentas yra trukmės laikas, tai reiškia, kiek laiko reikės pereiti į tikslą.

Norėdami pamatyti vilkimo operaciją, atidarykite dažus, padidinkite langą, pasiimkite pieštuką ir paleiskite šias komandas į interaktyvų apvalkalą.  Kodas per 2 sekundes perkelia pelę į (138 229) pikselius, o po 2 sekundžių taip pat vilkite pelę iš dabartinio pikselio į reikiamą pikselį.

>>> importuoti pyautogui
>>> pyautogui.„moveTo“ (138, 229, trukmė = 2)
>>> pyautogui.dragTo (238, 229, trukmė = 2)
>>> pyautogui.dragTo (238, 329, trukmė = 2)
>>> pyautogui.dragTo (138, 329, trukmė = 2)
>>> pyautogui.dragTo (138, 229, trukmė = 2)

Virš kodas padarys kvadratą ant dažų programos, vilkdami pelę.

Kaip rasti katalogo arba failo piktogramos koordinates

Norėdami rasti failo ar katalogo koordinates, .pozicija () naudojamas metodas. Šis metodas pateikia koordinates, kuriomis šiuo metu yra pelė. Norėdami rasti koordinates, atlikite nurodytus veiksmus

  1. Atidarykite python konsolę
  2. Tipo padėtis ()
  3. Prieš paspausdami klavišą „ENTER“, perkelkite pelės rodyklę į piktogramą, kurioje norite rasti koordinates
  4. Tada paspauskite Enter, kad įvykdytumėte komandą

Pauzės ir nesėkmės tvarkymas

Rašote scenarijų, kad automatizuotumėte pelės veiksmus ir jums reikia trumpos pauzės tarp kiekvienos komandos. Kaip jums tai pavyks? Ar naudosite .miegas () metodas LAIKAS modulis po kiekvienos komandos? Bet tai padidins jūsų kodo ilgį. Tai galima padaryti nustatant pyautogui.PAUZĖ kintamas pagal sekundžių skaičių, kurį norite sustabdyti. Tai sukurs pauzę po kiekvienos komandos.  Toliau pateiktame pavyzdyje tarp kiekvienos komandos padaryta 3 sekundžių pertrauka.

>>> importuoti pyautogui
>>> pyautogui.PAUZĖ = 3
>>> pyautogui.„moveTo“ (100,100)
>>> pyautogui.„moveTo“ (200 200)

Python taip pat turi KLAIDA funkcija. Norėdami įjungti šią funkciją, mes nustatėme pyautogui.KLAIDA į „True“. Kaip tai veikia? Pvz., Jūsų ekrano skiriamoji geba yra 1366 x 768. Jei perkelsite pelę į (1500 1500), programa suges, pakeldama „FailSafeException“. Šią išimtį galite tvarkyti naudodami „try and išskyrus“ pareiškimą arba išjungdami pyautogui.KLAIDA. Išjungus funkciją FAILSAFE, programa nekels šios išimties.

>>> importuoti pyautogui
>>> pyautogui.FAILSAFE = klaidinga
>>> pyautogui.dydis ()
Dydis (plotis = 1366, aukštis = 768)
>>> pyautogui.„moveTo“ (1500 1500)
>>> pyautogui.„moveTo“ (100,100)

Ankstesniame pavyzdyje mes perkėlėme pelę ant (1500 1500) pikselių, bet ekrane yra (1366 768) pikselių. Programa nepaisė šios išimties.

String siuntimas iš klaviatūros

PYAUTOGUI suteikia galimybę perduoti eilutę iš klaviatūros. Tai galima padaryti naudojant .šio modulio typewrite () metodas. Prieš perduodami eilutę iš klaviatūros, sutelkite dėmesį į langą, kuriame ketinate perduoti eilutę. Norėdami sutelkti dėmesį į reikiamą langą, galime naudoti .spustelėkite () metodą.

Tarp dviejų komandų naudojome kabliataškį, nes jis orientuotas į teksto redaktorių ir perduoda eilutę vienas už kito. Dabar kyla klausimas, kaip mes galime perduoti „Alt“ arba „Shift“ klavišus. Šiuos raktus galima pavaizduoti trumpomis eilutės reikšmėmis. Kai kurios eilutės vertės pateikiamos žemiau.

Raktų eilutės vertės
Kairysis ir dešinysis ALT klavišai „Altleft“, „Altright“
Kairysis ir dešinysis SHIFT klavišai „shiftleft“, „shiftright“
Kairysis ir dešinysis valdymo klavišai „ctrlleft“, „ctrlright“
„PAGE UP“ ir „PAGE DOWN“ klavišai „pageup“, „pagedown“
BACKSPACE ir DELETE klavišai „atgalinis klavišas“, „ištrinti“
Rodyklių klavišai aukštyn, žemyn, kairėn ir dešinėn „aukštyn“, „žemyn“, „kairė“, „dešinė“
CAPS LOCK raktas „capslock“
ENTER Raktas „Enter“
ESC raktas „esc“
TAB klavišo „skirtukas“
NAMAI ir PABAIGA Raktai „namai“, „pabaiga“
F1 – F12 klavišai „f1“, „f2“,… . , „f12“
NUM LOCK klavišas „numlock“
PRTSC raktas „spausdinimo ekranas“
INSERT raktas „įterpti“

Norėdami perduoti vieną iš pirmiau nurodytų raktų, mes naudojame šias eilutės reikšmes sąrašo forma. Sekantis pavyzdys tai paaiškins.  Kodas du kartus praeina „capslock“. Pirmą kartą sąrašo forma ir antrą kartą paprasta eilutė. Praleidus „capslock“ sąraše, paspaudžiamas mygtukas „CAPS LOCK“. Antrasis „capslock“ tiesiog užrašo „capslock“ didžiosiomis raidėmis, kai pirmiausia paspaudžiamas „CAPSLOCK“ klavišas.

>>> importuoti pyautogui
>>> pyautogui.rašomoji mašinėlė (['capslock']); pyautogui.rašomoji mašinėlė („capslock“)
CAPSLOCK >>> CAPSLOCK

Paspaudus sparčiuosius klavišus

Spartusis klavišas yra klavišų derinys kai kurioms užduotims atlikti. Pavyzdžiui, „Alt + F4“ spartusis klavišas naudojamas dabartiniam langui uždaryti. Klavišų derinį taip pat galima perduoti iš klaviatūros naudojant PYAUTOGUI modulį. Norėdami paspausti „Alt + F4“, pirmiausia paspauskite ir palaikykite „Alt“ klavišą, tada paspauskite „F4“ klavišą. Atleidę klavišą „F4“, atleidžiame klavišą „Alt“. Čia mes naudosime .keyUp () ir .keyDown () klavišų kombinacijos paspaudimo būdai.  Toliau pateiktame pavyzdyje rodomas „Alt“ klavišo paspaudimas ir „F4“ klavišo laikymas kartu.

importuoti pyautogui
importo laikas
pyautogui.keyDown ('alt')
pyautogui.keyDown (<'f4')
laikas.miegoti (.5)
pyautogui.keyUp ('f4')
pyautogui.keyUp ('alt')

PASTABA: Ankstesniame pavyzdyje mes nenaudojome „Alt“ ir „F4“ raktų eilutės reikšmių sąrašo. Eilutės vertės sąrašas perduodamas tik .mašinėlė () metodas.

Labai sudėtinga paspausti ir palaikyti klavišą „Alt“, tada paspausti klavišą „F4“ ir atleidus klavišą „F4“, tada atleisti klavišą „Alt“. Tai galima padaryti tiesiog naudojant .spartusis klavišas () metodas. Sekant pavyzdžiu, sąvoka bus aiški.

importuoti pyautogui
importo laikas
pyautogui.spartusis klavišas („alt“, „f4“)

Ekrano fotografavimas ir analizavimas

Taip pat galime padaryti ekrano kopiją naudodami „python“. „Pyautogui“ modulio pasiūlymai .ekrano kopija () būdas padaryti dabartinio ekrano ekrano kopiją. Ekrano kopiją galima rodyti naudojant .Rodyti() metodas. Vykdykite šią komandą, kad padarytumėte ekrano kopiją ir ją parodytumėte.

>>> importuoti pyautogui
>>> img = pyautogui.ekrano kopija ()
>>> img.Rodyti()

Kai paleisite aukščiau nurodytas komandas, kad padarytumėte ekrano kopiją, ji bus išsaugota kintamajame „img“. Dabar mes galime kviesti kitus metodus 'img' kintamajam.

Naudodami galime gauti reikiamos pikselio RGB reikšmių porą .getpixel () metodas kintamajam „img“. Argumentas perduotas .„getpixel“ () metodas yra rinkinys, kuriame yra ekrano kopijos x ir y koordinatės. Paleiskite šią komandą į interaktyvų apvalkalą.

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

Toliau mes galime gauti vaizdo dydį naudodami šią komandą

>>> img.dydžio
(1366, 768)

Mes galime patikrinti, ar pateikti ekrano pikseliai atitinka nurodytą RGB vertę, ar ne. Tai galima padaryti naudojant .pixelMatchesColor () metodas. Iš viso šiam metodui perduodami trys argumentai. Pirmieji du argumentai yra ekrano x ir y koordinatės, o trečiasis argumentas yra RGB reikšmių paketas. Šis metodas pateikia „True“, jei spalva sutampa su pikseliu, kitaip - „False“. Šį metodą galima naudoti taip

>>> pyautogui.pixelMatchesColor (2,3, (85,82,74))
Tiesa
>>> pyautogui.pixelMatchesColor (3,5, (52,85,74))
Klaidinga

Mes pamatėme keletą pagrindų, o dabar tolesniuose skyriuose pamatysime kai kuriuos GUI automatizavimo naudojant PYAUTOGUI modulį naudojimo atvejus.

Automatiškai atidaryti skirtingus failus jums

Kasdien savo biure turite atidaryti daug failų, kad rankiniu būdu įvestumėte kai kuriuos darbuotojų duomenis. Tai šiek tiek nuobodus dalykas. Pirmiausia eikite į „Documents“ katalogą, tada eikite į kitą katalogą ir atidarykite failą, tada grįžkite į „Document“ katalogą ir pereikite prie kito katalogo ir atlikite tą patį dalyką ir tt.

Tai galima padaryti tiesiog parašius pitono scenarijų. Ką turite padaryti, tai paleisti tik scenarijų ir scenarijus atidarys visus failus.

Norėdami atlikti šią užduotį, pirmiausia turite rasti šių koordinačių koordinates

  1. Kiekvieno katalogo piktograma
  2. Kiekvieno failo piktograma
  3. Sumažinti failų mygtuką

Kaip rasti koordinates, buvo paaiškinta anksčiau.

# importuojantis pyautogui modulį
importuoti pyautogui
# generuoja 1 pauzę.5 sekundės po kiekvienos komandos
pyautogui.PAUZĖ = 1.5
# perkelkite pelę į piktogramą „Šis kompiuteris“ užduočių juostoje
pyautogui.„moveTo“ (346 752)
# spustelėdami piktogramą „Šis kompiuteris“
pyautogui.spustelėkite ()
# perkelkite pelę į „Dokumentų“ katalogo piktogramą
pyautogui.„moveTo“ (95 184)
# spustelėjus katalogą „Dokumentai“
pyautogui.spustelėkite ()
# perkelkite pelę į katalogą „Dokumentai“ kataloge
pyautogui.„moveTo“ (249 107)
# dukart spustelėdami atidarykite katalogą
pyautogui.dukart spustelėkite()
# perkelkite pelę ant failo, kad atidarytumėte
pyautogui.„moveTo“ (249 108)
# dukart spustelėkite failą, kad atidarytumėte
pyautogui.dukart spustelėkite()
# judinkite pelę mygtuku „Sumažinti“
pyautogui.„moveTo“ (1310,47)
# spustelėjus, kad sumažintumėte failą
pyautogui.spustelėkite ()

Ankstesniame kode atidarome tik vieną failą. Panašiai galite išplėsti kodą, kad atidarytumėte kelis failus.

Atrodo užimtas sistemoje

Jūs esate savo darbe ir nedirbate su sistema, tačiau jūsų sistemoje yra įdiegta programa, kuri gali nuspėti, ar jūs sėdite be darbo, ar dirbate sistemoje, naudodamiesi pelės judesiu. Taigi norite automatizuoti pelės judėjimą po kiekvieno trumpo laiko tarpo.

Tai galima padaryti parašius mažą pitono scenarijų naudojant PYAUTOGUI modulis.

importuoti pyautogui
# generuoja 5 sekundžių pertrauką tarp pelės judėjimo
pyautogui.PAUZĖ = 5
bandyti:
# Bėga begalinė kilpa
o tiesa:
# perkelkite pelę iki (200 300) koordinačių per 1 sekundę
pyautogui.„moveTo“ (200 300, trukmė = 1)
# perkelkite pelę iki (201 310) koordinatės per 1 sekundę
pyautogui.„moveTo“ (201 310, trukmė = 1)
išskyrus „KeyboardInterrupt“:
spausdinti („mesti“)

Aukščiau pateiktame kode mes kas 5 sekundes perkeliame pelę iš vienos vietos į kitą. Mes galime atsisakyti šio kodo paspausdami „Ctrl + C“.

Išvada

Šiame tinklaraštyje aptarėme, kaip galite naudoti PYAUTOGUI modulį sistemos GUI automatizavimui. Buvo paaiškintos skirtingos šio modulio funkcijos ir galite automatizuoti beveik viską, ką galima padaryti naudojant klaviatūrą ir pelę, naudojant šias funkcijas.

Populiariausi „Oculus App Lab“ žaidimai
Jei esate „Oculus“ laisvų rankų įrangos savininkas, turite žinoti, kaip krauti iš šono. Šoninis įkėlimas yra ne parduotuvėje esančio turinio įdiegimas...
10 geriausių žaidimų, kuriuos reikia žaisti naudojant „Ubuntu“
„Windows“ platforma buvo viena iš dominuojančių žaidimų platformų dėl didžiulio procento žaidimų, kurie šiandien kuriami natūraliai palaikant „Windows...
5 geriausi „Arcade“ žaidimai, skirti „Linux“
Šiais laikais kompiuteriai yra rimta mašina, naudojama žaidimams. Jei negalėsite gauti naujo aukšto rezultato, žinosite, ką noriu pasakyti. Šiame įraš...