Automatyzacja jest bardzo zależna od sytuacji danego przypadku i wymaga łączenia wiele typów rozwiązań, aby osiągnąć oczekiwany rezultat. W poniższym materiale poznamy kolejny z nich, a mianowicie rozpoznawanie i interakcję z obrazem na ekranie niezależnie od koordynatów.

poznaliśmy już kilka metod z biblioteki pyautogui, automatyzacje z wykorzystaniem klawiatury oraz myszy

Dziś poznamy kolejną bardzo ciekawą a mianowicie, interakcję z obrazem którego współrzędnych nie znamy, a chcemy wejść z danym elementem w interakcję.

Kontynuując znany nam już przykład z notatnikiem, zrealizujemy go teraz za pomocą rozpoznawania obrazu, dzięki czemu poznamy już 3 różne metody automatyzacji tego samego procesu.

Zatem importujemy bibliotekę pyautogui:

Copy to Clipboard

Pierwszym krokiem jest stworzenie sobie bazy obrazów z której będziemy korzystać, czyli w tym przypadku:

  1. włączenie aplikacji notatnika
  2. wpisanie tekstu
  3. kliknięcie menu
  4. kliknięcie formatu
  5. wpisanie czcionki
  6. kliknięcie ok

Następnie możemy zacząć pisać kod i lokalizować elementy działa to w następujący sposób

Copy to Clipboard

dostajemy informację o lokalizacji obrazka

Box(left=242, top=588, width=73, height=58)

numery te to współrzędne znalezionego obrazka na naszym ekranie, lewy górny wierzchołek oraz jego szerokość oraz wysokość
możemy się do nich odwoływać za pomocą indexu bądź funkcji zwracającej daną wartość czyli:

Copy to Clipboard

możemy też dostać współrzędne samego środka za pomocą prostej metody:

Copy to Clipboard

Teraz pozostaję nam jedynie wykonać sekwencje kliknięć i wpisów potrzebnych nam tekstów za pomocą metod które już poznaliśmy takich jak „gui.click(x,y) , gui.doubleClick(x,y)   czy gui.typewrite()”

Copy to Clipboard

Oczywiście tak jak w poprzednich przypadkach należy zwrócić uwagę na to jak szybko aplikacja reaguję na automatyzację i dostosować oczekiwanie za pomocą time.sleep, tak żeby aplikacja nadążyła za naszym skryptem.

Jak widać może sam przykład nie jest najbardziej błyskotliwy ale z pewnością buduję świadomość możliwości działania biblioteki PyAutoGUI

Podsumowanie

Jeśli nie możemy się spodziewać konkretnego miejsca na ekranie elementu z którymi próbujemy wejść w interakcję, możemy skorzystać z rozpoznawania obrazu wbudowanego w bibliotekę pyautogui. Nie koniecznie jest to najlepszy sposób gdyż jej czuły na zmiany koloru czy kształtu, dlatego też należy uważnie go stosować. W praktyce korzystamy z tej opcji dopiero w ostateczności, również ze względu na wydajność, gdyż analiza ekranu zajmuję zdecydowanie więcej czasu niż samo kliknięcie.