Automatyzacja GUI za pomocą Pyautogui, Python

Automatyzacja GUI za pomocą Pyautogui, Python
Pyautogui to moduł automatyzacji dostarczany przez Pythona do kontrolowania funkcji klawiatury i myszy za pośrednictwem programu. Ten moduł ma prawie wszystkie funkcje, które można wykonać za pomocą klawiatury i myszy. Możemy użyć tych funkcji do automatyzacji akcji myszy i klawiatury.

Instalowanie Pyautogui

Przed użyciem funkcji Pyautogui moduł, musimy go zainstalować. Aby zainstalować ten moduł, uruchom następujące polecenie w terminalu.

$ pip instaluj pyautogui

LUB

$ PIP3 instaluj pyautogui

Teraz Pyautogui jest gotowy do użycia.

Uzyskanie rozdzielczości wyświetlacza

Przed automatyzacją działań myszy, dobrą praktyką jest znanie rozdzielczości wyświetlacza. Możemy uzyskać rozdzielczość wyświetlacza za pomocą .rozmiar() metoda

Pyautogui. Zobacz poniżej Uzyskanie rozdzielczości ekranu w postaci „szerokości x wysokość”:

Python 2.7.15+ (domyślnie, 7 października 2019, 17:39:04)
[GCC 7.4.0] na Linux2

Wpisz „Pomoc”, „Copyright”, „Kredyty” lub „Licencja”, aby uzyskać więcej informacji.

>>> Importuj Pyautogui
>>> szerokość, wysokość = pyautogui.rozmiar()
>>> Drukuj (szerokość)
1366
>>> Drukuj (wysokość)
768

Oznacza to, że mamy 1366 pikseli w poziomym kierunku wyświetlacza i 768 pikseli w pionowym kierunku wyświetlacza.

Poruszanie myszy na wystawie

Znamy więc rozdzielczość naszego wyświetlacza. Teraz możemy przesunąć mysz w dowolnym miejscu na wyświetlaczu w granicach rozdzielczości wyświetlacza. Możemy przesunąć mysz za pomocą .Moveto () Metoda Pyautogui. Przykład poniżej pozycji poruszającej myszy do (100 100) w 2 sekundy

>>> Importuj Pyautogui
>>> Pyautogui.Moveto (100 100, czas trwania = 2)

Przekazaliśmy trzy argumenty .Metoda moveto (). Pierwsze dwa argumenty są obowiązkowe i pokazują pozycję miejsca docelowego, ale trzeci argument nie jest obowiązkowy. Jeśli nie przekazamy trzeciego argumentu, mysz przenosi się do miejsca docelowego w krótkim czasie.

Kliknięcie, przewijanie i przeciąganie myszy

Pyautogui zapewnia pewne metody kontrolowania działań myszy. Możemy kliknąć, przewijać i przeciągnąć mysz za pomocą różnych metod.

Kliknięcie akcji myszy można wykonać za pomocą za pomocą .Metoda kliknięcia (). Przed kliknięciem przenieś mysz do wymaganego piksela, a następnie użyj .kliknij () metoda kliknięcia. Poniżej znajduje się przykład wykonania klikalności myszy. Poniższy przykład przesunie myszkę do (300,201) piksela i kliknij myszkę.

>>> Importuj Pyautogui
>>> Pyautogui.Moveto (300,201)
>>> Pyautogui.Kliknij()

Możesz dwukrotnie kliknąć mysz za pomocą .podwójne kliknięcie() metoda.

>>> Pyautogui.Moveto (300,201)
>>> Pyautogui.podwójne kliknięcie()

Pyautogui zapewnia metodę .zwój() Aby przewinąć mysz w górę lub w dół. Ta metoda przyjmuje liczbę całkowitą jako argument, a następnie przewija w górę lub w dół w zależności od liczby całkowitej. Jeśli zdasz pozytywną liczbę całkowitą, przewija się w górę i do negatywnej liczby całkowitej przewijania w dół. Ile to będzie przewijać? To zależy od wartości liczby całkowitej.

>>> Importuj Pyautogui
>>> Pyautogui.Scroll (20)
>>> Pyautogui.Scroll (-20)

W powyższym przykładzie najpierw mysz przewinie 20 jednostek, a następnie przewijała w dół 20 jednostek.

Operację przeciągania myszy można również zastosować za pomocą za pomocą .przeciągnij do() Metoda modułu Pyautogui. Przeciąganie oznacza, poruszając myszką podczas nacisku jednego z przycisków myszy. Ta metoda przyjmuje trzy argumenty, pierwsze dwa argumenty wyświetlane współrzędne docelowego, a ostatni argument to czas trwania, co oznacza, ile czasu zajmie przejście do miejsca docelowego.

Aby zobaczyć operację przeciągania, otwórz farbę, zmaksymalizuj okno, wybierz ołówek i uruchom następujące polecenia do interaktywnej powłoki. Kod przesunie mysz do (138 229) pikseli w ciągu 2 sekund, a następnie przeciągnij mysz z obecnego piksela do wymaganego piksela również w 2 sekundy.

>>> Importuj Pyautogui
>>> Pyautogui.Moveto (138, 229, czas trwania = 2)
>>> Pyautogui.Dragto (238, 229, czas trwania = 2)
>>> Pyautogui.Dragto (238, 329, czas trwania = 2)
>>> Pyautogui.Dragto (138, 329, czas trwania = 2)
>>> Pyautogui.Dragto (138, 229, czas trwania = 2)

Powyższy kod stworzy kwadratowy program malowania, przeciągając mysz.

Jak znaleźć współrzędne katalogu lub ikony pliku

Aby znaleźć współrzędne pliku lub katalogu, .pozycja() Zastosowana jest metoda. Ta metoda zwraca współrzędne, przy których obecna jest mysz. Postępuj zgodnie z podanymi krokami, aby znaleźć współrzędne

  1. Otwórz konsolę Python
  2. Pozycja typu ()
  3. Przed naciśnięciem klawisza „Enter” przenieś strzałkę myszy do ikony, gdzie chcesz znaleźć współrzędne
  4. Następnie naciśnij ENTER, aby wykonać polecenie

Obsługa przerwania i awarii

Piszesz skrypt do automatyzacji działań myszy i potrzebujesz krótkiej przerwy między każdym poleceniem. Jak sobie z tym poradzisz? Czy użyjesz .spać() metoda CZAS moduł po każdym poleceniu? Ale zwiększy to długość twojego kodu. Można to zrobić poprzez ustawienie Pyautogui.PAUZA zmienne do liczby sekund, które chcesz przerwać. To spowoduje pauzę po każdym poleceniu. Poniższy przykład zatrzymuje się 3 sekundy między każdym poleceniem.

>>> Importuj Pyautogui
>>> Pyautogui.Pauza = 3
>>> Pyautogui.Moveto (100 100)
>>> Pyautogui.Moveto (200 200)

Python ma również Awaria funkcja. Aby włączyć tę funkcję, ustawiliśmy Pyautogui.Niepowodzenie na true. Jak to działa? Na przykład wyświetlacz ma rozdzielczość 1366 x 768. Jeśli przeniesiesz myszę do (1500,1500), program awansuje, podnosząc FaiSafeexception. Możesz poradzić sobie z tym wyjątkiem, używając Try i oprócz instrukcji lub wyłączając Pyautogui.Awaria. Wyłączając funkcję FailSafe, program nie podnosi tego wyjątku.

>>> Importuj Pyautogui
>>> Pyautogui.FailSafe = false
>>> Pyautogui.rozmiar()
Rozmiar (szerokość = 1366, wysokość = 768)
>>> Pyautogui.Moveto (1500,1500)
>>> Pyautogui.Moveto (100 100)

W powyższym przykładzie przesunęliśmy myszę na pikseli (1500,1500), ale ekran ma (1366 768) pikseli. Program zignorował ten wyjątek.

Wysyłanie łańcucha z klawiatury

Pyautogui zapewnia funkcję przekazania łańcucha z klawiatury. Można to zrobić za pomocą .Metoda bledrite () tego modułu. Przed przekazaniem łańcucha z klawiatury skup się na oknie, w którym zamierzasz przekazać ciąg. Aby skupić się na wymaganym oknie, możemy użyć .Metoda kliknięcia ().

Użyliśmy półkolisu między dwoma poleceniami, ponieważ koncentruje się on na edytorze tekstu i przekazuje ciąg jeden za drugim. Teraz pytanie brzmi, w jaki sposób możemy przekazać klucze „alt” lub „przesuń”. Te klucze mogą być reprezentowane przez krótkie wartości ciągów. Niektóre wartości ciągów podano poniżej.

Wartości ciągów kluczy
Lewy i prawy klawisze alt „Altleft”, „Altright”
Klawisze z lewej i prawej zmiany „Shiftleft”, „Shiftright”
Lewy i prawy klawisze sterowania „Ctrlleft”, „Ctrlright”
Strona w górę i klawisze w dół „Stronaup”, „Pagedown”
Backspace i usuń klawisze „Backspace”, „Usuń”
W górę, w dół, w lewo i prawej strzałki „w górę”, „w dół”, „lewy”, „prawy”
Klucz zamka „Capslock”
Wprowadź klucz „Wprowadź”
Klucz esc „ESC”
Klawisz „Tab”
Strona główna i Klucze „Home”, „End”
F1 do F12 Keys „F1”, „F2”,… . , „f12”
Num Lock Klucz „Numlock”
Klucz PRTSC „PrintScreen”
Wstaw klucz „Wstaw”

Aby przejść jeden z powyższych kluczy, używamy tych wartości ciągów w formie listy. Poniższy przykład wyjaśni to. Kod przekazuje dwa razy „kapsel”. Po raz pierwszy w formie listy i drugi raz prosty ciąg. Przekazanie „Capslock” na liście naciska klawisz „Caps Lock”. A drugi „capslock” po prostu napisz „capslock” w kapitale, ponieważ klawisz „capslock” jest najpierw naciskany.

>>> Importuj Pyautogui
>>> Pyautogui.maszyna do pisania (['capslock']); pyautogui.maszyna do pisania („capslock”)
Capslock >>> Capslock

Naciśnięte skróty

Skrót to połączenie kluczy do wykonywania niektórych zadań. Na przykład skrót „alt+f4” służy do zamykania bieżącego okna. Kombinację klawiszy można również przekazać z klawiatury za pomocą modułu Pyautogui. Aby nacisnąć „alt+f4”, najpierw naciskamy i przytrzymujemy klawisz „alt”, a następnie naciskamy klawisz „f4”. Po wydaniu klawisza „F4” wypuszczamy klucz „alt”. Tutaj użyjemy .keyup () I .KeyDown () Metody nacisku kombinacji klawiszy. Poniższy przykład pokazuje naciśnięcie i trzymanie klawisza „alt” oraz naciskanie i trzymanie klawisza „F4” razem.

Import Pyautogui
czas importu
Pyautogui.Keydown („alt”)
Pyautogui.Klucz (<'f4')
czas.spać(.5)
Pyautogui.Keyup („F4”)
Pyautogui.Keyup („alt”)

NOTATKA: W powyższym przykładzie nie użyliśmy listy wartości ciągu „alt” i „f4”. Lista wartości ciągu jest przekazywana tylko do .maszyna do pisania () metoda.

Naciśnięcie i przytrzymanie klawisza „alt” jest bardzo skomplikowane, a następnie naciśnij klawisz „F4”, a po wydaniu klawisza „F4”, a następnie zwolnij klawisz „alt”. Można to zrobić po prostu za pomocą .Klawisz skrótu() metoda. Poniższy przykład wyczyści koncepcję.

Import Pyautogui
czas importu
Pyautogui.Hotkey („alt”, „f4”)

Przyjmowanie i analizowanie zrzutów ekranu

Możemy również zrobić zrzut ekranu za pomocą Pythona. Oferty modułu Pyautogui .zrzut ekranu() metoda robienia zrzutów ekranu bieżącego ekranu. Zrzut ekranu można wyświetlić za pomocą za pomocą .pokazywać() metoda. Uruchom następujące polecenie, aby zrobić zrzut ekranu i wyświetlić je.

>>> Importuj Pyautogui
>>> img = pyautogui.zrzut ekranu()
>>> img.pokazywać()

Po uruchomieniu powyższych poleceń, aby zrobić zrzut ekranu, zostanie zapisany w zmiennej „IMG”. Teraz możemy wywołać dalsze metody zmiennej „IMG”.

Możemy uzyskać krotność wartości RGB naszego wymaganego piksela za pomocą użycia .getPixel () Metoda zmiennej „IMG”. Argument przekazany .Metoda getPixel () to krotka zawierająca współrzędne x i y. Uruchom następujące polecenie do interaktywnej powłoki.

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

Dalej możemy uzyskać rozmiar obrazu za pomocą następującego polecenia

>>> img.rozmiar
(1366, 768)

Możemy sprawdzić, czy podane piksele ekranu pasują do danej wartości RGB, czy nie. Można to zrobić za pomocą .PixelMatchescolor () metoda. W sumie trzy argumenty są przekazywane do tej metody. Pierwsze dwa argumenty to współrzędne x i y, a trzeci argument to krotek wartości RGB. Ta metoda zwraca „prawdziwe”, jeśli kolor pasuje do piksela, w przeciwnym razie „Fałsz”. Tę metodę można zastosować w następujący sposób

>>> Pyautogui.PixelMatchescolor (2,3, (85,82,74))
PRAWDA
>>> Pyautogui.PixelMatchescolor (3,5, (52,85,74))
FAŁSZ

Widzieliśmy pewne podstawy, a teraz w poniższych sekcjach zobaczymy niektóre przypadki użycia automatyzacji GUI za pomocą modułu Pyautogui.

Automatycznie otwiera dla Ciebie różne pliki

Codziennie w swoim biurze musisz otworzyć wiele plików, aby ręcznie wprowadzić dane pracowników. To trochę nudne rzeczy do zrobienia. Najpierw przejdź do katalogu dokumentów, a następnie przejdź do innego katalogu i otwórz plik, a następnie wróć do katalogu dokumentów i dostaj kolejnego katalogu i rób to samo itp.

Można to zrobić po prostu, pisząc skrypt Python. To, co musisz zrobić, to uruchomić tylko skrypt, a skrypt otworzy wszystkie pliki.

Aby wykonać to zadanie, przede wszystkim musisz zlokalizować współrzędne następujących

  1. Ikona każdego katalogu
  2. Ikona każdego pliku
  3. Minimalizuj przycisk plików

Jak znaleźć współrzędne, zostało wyjaśnione wcześniej.

# Importowanie modułu Pyautogui
Import Pyautogui
# Generowanie pauzy 1.5 sekundy po każdym poleceniu
Pyautogui.Pauza = 1.5
# Przenoszenie myszy do ikony „This PC” na pasku zadań
Pyautogui.Moveto (346,752)
# Kliknięcie ikony „This PC”
Pyautogui.Kliknij()
# Ikona katalogu „Documents” do „Documents” Directory
Pyautogui.Moveto (95 184)
# Kliknięcie katalogu „Documents”
Pyautogui.Kliknij()
# Przenoszenie myszy do katalogu wewnątrz katalogu „Documents”
Pyautogui.Moveto (249,107)
# dwukrotne kliknięcie, aby otworzyć katalog
Pyautogui.podwójne kliknięcie()
# Przeniesienie myszy w pliku, aby otworzyć
Pyautogui.Moveto (249,108)
# dwukrotnie kliknięcie pliku, aby otworzyć
Pyautogui.podwójne kliknięcie()
# Przeniesienie myszy przy przycisku minimalizują
Pyautogui.Moveto (1310,47)
# kliknięcie, aby zminimalizować plik
Pyautogui.Kliknij()

W powyższym kodzie otwieramy tylko jeden plik. Podobnie możesz rozszerzyć kod, aby otworzyć wiele plików.

Patrząc na system

Jesteś w pracy i nie pracujesz nad systemem, ale twój system ma zainstalowaną aplikację, która może zgadywać, czy siedzisz bezczynnie, czy pracujesz nad systemem za pomocą ruchu myszy. Więc chcesz zautomatyzować myszkę do poruszania się po każdym krótkim czasie.

Można to zrobić, pisząc mały skrypt Python za pomocą Pyautogui moduł.

Import Pyautogui
# Generowanie przerwy 5 sekund między ruchem myszy
Pyautogui.Pauza = 5
próbować:
# Bieganie nieskończona pętla
Choć prawda:
# Przeniesienie myszy do (200 300) współrzędne w 1 sekundzie
Pyautogui.Moveto (200 300, czas trwania = 1)
# przenoszenie myszy do (201,310) współrzędna w 1 sekundę
Pyautogui.Moveto (201,310, czas trwania = 1)
Z wyjątkiem klawiatury
Drukuj („rzucanie”)

W powyższym kodzie przesuwamy mysz z jednego miejsca do drugiego po 5 sekundach. Możemy rzucić ten kod, naciskając „Ctrl+C”.

Wniosek

Na tym blogu omówiliśmy, w jaki sposób możesz użyć modułu Pyautogui do automatyzacji GUI systemu. Różne funkcje tego modułu zostały wyjaśnione i możesz zautomatyzować prawie wszystko, co można wykonać za pomocą klawiatury i myszy za pomocą tych funkcji.