Jednym z dynamicznie rozwijających się obszarów technologicznych jest obecnie RPA – Robotic Process Automation. Są to narzędzia pozwalające naśladować aktywności do tej pory wykonywane przez człowieka, a charakteryzujące się powtarzalnością. Jak np. narzędzie UI Path.

Aktywności te wykonywane są w aplikacjach biurowych, oraz na stronach WWW. Standardowe narzędzia RPA, oprócz licznych swych zalet, charakteryzują się również dużym kosztem. W tym samym czasie mamy do dyspozycji bibliotekę Selenium, która doskonale nadaję się do automatyzowania aktywności wykonywanych na stronach WWW oraz aplikacjach webowych.

W poniższych artykule przyjrzymy się jej działaniu. Zaczynajmy!

First things, first. Czyli zastanówmy się skąd takie narzędzie może wiedzieć który element kliknąć, w który element wpisać dane, z którego miejsca dane sczytać itp. Otóż każdy element wyświetlany przez naszą przeglądarkę jest obiektem HTML mającym przypisane pewne cechy. Jak ID, Class, Name, Type, hrel, itd., zwane lokalizatorami.

Aby Python oraz biblioteka Selenium wiedziały który element na stronie wykonać, musimy opisać go za pomocą lokalizatora lub lokalizatorów tak, aby był mógł być jednoznacznie zidentyfikowany.

Przykład: Jeżeli będziemy chcieli, aby Python i Selenium, po wejściu na stronę Wirtualnej polski, odnieśli się do przycisku POCZTA

Musimy najpierw poznać jego lokalizatory. W tym celu (jeżeli używamy przeglądarki Chrome), klikamy prawym klawiszem myszy na przycisk POCZTA, po czym wybieramy z menu opcję ‘zbadaj’. To spowoduje wyświetlenie się koło strony, jej kodu. Tak jak poniżej:

Kod opisujący przycisk POCZTA, jest podświetlony. W raz z jego lokalizatorami:

I tutaj przydaje się podstawowa znajomość języka HTML. Przycisk POCZTA, możemy zidentyfikować co najmniej na 3 sposoby. Po hrel, po nazwie Class, czy też po nazwie wyświetlanej na przycisku. My skorzystamy z 3ciej opcji, co zresztą zobaczymy w kodach przykładu:

driver.find_element_by_link_text(‚POCZTA’).click()

No dobrze, to zobaczmy jak taki program, mógłby wyglądać.

1. Selenium

Importujemy bibliotekę Selenium

>>>from selenium import webdriver

>>>import time

2. WebDrivers

Abyśmy mogli sterować naszą przeglądarką, potrzebujemy pobrać oraz załadować webdrivers.

http://chromedriver.chromium.org/getting-started

>>> driver = webdriver.Chrome(„/usr/bin/chromedriver”)

po pobraniu, wskazujemy ścieżkę gdzie się znajdują

3. wp.pl

Uruchamiamy przeglądarkę i wchodzimy na stronę wirtualnej polski

>>>dest = ‚https://wp.pl’

>>>driver.get(dest)

>>>time.sleep(2)

czekamy również 2 sekundy, aż strona się w całości załaduje

4. POCZTA

Identyfikujemy po lokalizatorach przycisk POCZTA i go klikamy

>>>driver.find_element_by_link_text(‚POCZTA’).click()

5. GIT Hub

Bardziej rozbudowane kody znajdują się w repozytorium GitHub.

Podsumowując. Selenium jest dobrze znaną biblioteką, posiadającą liczne grono zwolenników. Za jej pomocą możemy wykonać nawet zaawansowane automatyzacje w aplikacjach webowych. Jest również szeroko stosowana przez programistów w testach aplikacji oraz szeroko stosowana przez spamerów w internecie :/

Względem aplikacji takich jak UI Path, minusem jest fakt, że wszystko jest kodowane. Tym samym przy większej skali, łatwo stracić kontrolę.

Czy nadaje się do zastosowania w małych projektach? Absolutnie TAK. Czy nadaje się jako rozwiązanie do automatyzacji procesów biznesowych klasy enterprise? Technologicznie, tak, ale tylko pod okiem doświadczonej osoby. Jest o wiele trudniejsze w kontroli niż klasyczne RPA, natomiast próg wejścia jest wyższy. Trudniej nauczyć się Selenium niż UI Path.