Znaleźć najlepsza ofertę usługi – prosta sprawa 🙂 ! Nie dla dociekliwego testera, który lubi ułatwiać sobie życie… 😀
Jak skończyłem na grzebaniu w konsoli przeglądarki, bo potrzebowałem umówić gazownika… co z tego wynikło?
Zapraszam do krótkiego artykułu.

Geneza

Wiemy, że automatyzacja zajmie zazwyczaj więcej czasu niż manualne wykonanie jakiegoś zadania, niemniej zabawa i skill jaki się przy tym rozwija zachęcają do niekonwencjonalnych rozwiązań. Przede wszystkim późniejsze wykonanie tego samego zadania zajmie nam tylko tylko chwilę.

Tak było i ze mną gdy napotkałem na swojej drodze

proste wyzwanie.

Miałem obdzwonić wiele punktów serwisowych (gaz to nie przelewki) po to, aby wybrać najlepszą ofertę. Jako, że producent wymusza autoryzowanych serwisantów, skorzystałem ze strony z wyszukiwarką takowych:
http://dealersearch.junkers.pl/pl/installer

I tu zaczęła się moja przygoda…

Uwaga: Dane zaprezentowane w tym poście zostały zanonimizowane co oznacza, że nie powinniście dzwonić pod numery, które tu zobaczycie, bo one na dzień dzisiejszy nie istnieją 🙂
TIP: Wiedzę potrzebną do przedstawionych tu działań można zdobyć w naszych kursach – podlinkowuję dane lekcje, które dokładnie wyjasniają jak samemu wykonać podobne kroki 🙂 Wszyscy, którzy nie posiadają dostępu do danej lekcji, zostaną automatycznie przekierowani na stronę główną kursu, na której to można odnaleźć dany temat w spisie lekcji.

Telefon do gazownika – nie taki łatwy do skopiowania

Po wyszukaniu listy serwisantów postanowiłem przerzucić ich dane do mojego narzędzia do zarządzania zadaniami, aby łatwiej aktualizować moje działania.

Niestety – telefony są dość dziwnie dostępne – trzeba wybierać serwisanta i dopiero można na mapce z prawej zobaczyć niekopiowalny numer telefonu 🙁 LOL i tak dla każdego….
Enough!
Śmiało wcisnąłem F12 aby wywołać Opcje deweloperskie.

Zlokalizowanie gazownika

Wybrałem pierwszego gazownika z listy, kliknąłem prawym myszki i wybrałem opcję Zbadaj element.

Nieźle, jest nazwa, którą mogę skorelować z numerem telefonu. Następnie poczyniłem takie kroki:

  1. Skopiowałem XPath ze wskazanego elementu (prawy klawisz myszki -> kopiuj -> Xpath)
  2. W konsoli wrzuciłem go do wyrażenia wyszukującego element $x(''). Jest element został znaleziony 😀
  3. Potem wyłuskałem sam tekst dodając na końcu XPath /text()

Dobra, nie jest to nic nadzwyczajnego… ale jakby tak pobrać listę wszystkich osobników z mojego wyszukiwania? Nic prostszego – wiedząc jak działają listy w HTML analogicznie podchodze do tabelek (dla dociekliwych kod HTML tabeli). Zmieniłem część wskazującą na dany rząd wyglądającą tak: tr[3], na taką co weźmie pod uwagę wszystkie rzędy czyli tr. Wynik tej operacji wyglądał tak (ze wskazaniem na zmianę)

Jest pro – mam listę gazowników.

Ukryte telefony

Tym razem skorzystałem z wyszukiwarki w kodzie HTML

Szybko zlokalizowałem numer telefonu dla pierwszego gazownika. Skopiowałem XPath a następnie wrzuciłem go tak jak poprzednio w konsolę opakowanego w $x(''). Oczywiście trik z usunięciem wartości po tr też się sprawdził i oto mam listę telefonów:

Połączenie znalezisk

Warto to jakoś ładnie wyprintować – znalezionych osobników i numery telefonów.

1 i 2 – najpierw przypisałem znaleziska do zmiennych.
3 – znając pętlę for z Pythona napisałem bardzo podobną w JS. W ciele for użyłem funkcji printującej czyli console.log. Okazało się, że pobranie elementu z listy jeszcze nie dawało pożądanego rezultatu i trzeba było z każdego obiektu wyłuskać tekst, który krył się w atrybucie data, czyli names[i].data i analogicznie dla listy numerów.

Czyszczenie wyniku

Skopiowany tekst z konsoli szybko przeczyściłem w Notepad++.

Teraz tekst już był gotowy do stworzenia mojej listy imion i telefonów.

Kolejna lista – już bardziej ludzka i interaktywana

Wystarczyło teraz tylko skopiować tekst i wrzucić do mojego narzędzia z zadaniami Trello (gif zaczyna się od kopiowania listy z Notepad++)

Mając taką listę mogłem bezpośrednio w telefonie wybierać numery z każdego wiersza i dzwonić.

Czy to ma sens? 10 numerów przepisałbyś szybciej Przemek?!

Zapewne manualnie byłoby szybciej. Może… W moimi oryginalnym wyszukiwaniu miałem ok 40 rekordów , a to już sporo.
Od razu uzyskałem bezbłędnie powiązane numery i nazwiska w Trello wraz z automatycznie stworzoną listą.
Teraz mogę łatwo dzwonić i uaktualnić wpisy (kto, kiedy i za ile) oraz udostępniać moje działania 😀

Przy okazji miałem świetną zabawę śmigając po konsoli 😀

Teraz Ty

W ramach rozrywki proponujemy automatyzację tego zadania w Pythonie. Śmiało napisz taki skrypt i zobacz czy to dla Ciebie działa. Jeśli napotkasz problemy wtedy uaktualnie ten wpis o pythonową wersja rozwiązania 🙂

Podsumowanie

Mam nadzieją, że w przyszłości też wykorzystasz wiedzę z naszych kursów do tak niekonwencjonalnych pomysłów – podziel się nimi gdyż w jaktestowac.pl lubimy takie tricki 🙂
Miłej zabawy i odkrywania webowego świata!
Czy chciałbyś więcej tego typu treści – takiego testerskiego lifehackingu? Napisz w komentarzu 😛


Autor: Przemek Barański

Certyfikowany Tester Oprogramowania z powołaniem, aby uczynić rozwój zawodowy w IT prostym i pasjonującym. Orędownik działania, szybkiego reagowania na zmiany oraz przejrzystych reguł. Tajemnicza wiara w istnienie rozwiązania na każdy problem pozwala mu podnosić jakość w wielu obszarach życia.
Założyciel oraz współtwórca protalu edukacyjnego dla testerów jaktestowac.pl .

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *