Aktywne Wpisy
wszystkozajete12 +29
Woda w Głuchołazach już opada. Widać już wyłaniające się pierwsze zguby w postaci różnych przedmiotów, które porwała woda. W wielu domach rzeka wyważyła drzwi i wdarła się do środka zabierając ze sobą telewizory, komputery, pralki i inne wartościowe rzeczy. Jutro jadę więc dostawczakiem. Mam jedno miejsce jakby ktoś chciał się złożyć na wachę, dzielimy się po pół. Łódzkie.
https://twitter.com/Buckarobanza/status/1835335296000360765
#powodz
https://twitter.com/Buckarobanza/status/1835335296000360765
#powodz


Mietowy_ +5
Zapora Pilchowice, ktoś coś wie?
#powodz
#powodz
źródło: temp_file8543006176198356100
Pobierz




Zapraszam zatem do lektury osoby zainteresowane #testowanieoprogramowania, ale również tych, którzy po prostu chcą konstruktywnie spędzić zimowy wieczór podczas kwarantanny i nauczyć się podstaw automatyzacji. Przy okazji liźniemy tematy związane z #programowanie w #python, może kiedyś #javascript, zobaczymy jak się to potoczy. Kurs będzie od podstaw, więc nie zdziwcie się, jeśli spotkacie oczywiste dla was rzeczy, ale celem jest pokazanie, że ogarnięta Pani Krysia z HR też może pisać automaty, nie mając pojęcia ani nie potrzebując żadnych klas, metod, obiektów, interfejsów, isków ani dupiksów. (chociaż ja wie co to jest, to może korzystać z ich dobrodziejstw)
Zaczniemy od instalacji niezbędnego oprogramowania i napiszemy proste zadanie, które zautomatyzuje jakąś stronę, w naszym przypadku: zaobserwujemy tag na wykopie. Do dzieła zatem!
1. Instalacja:
Dziś będziemy automatyzować przeglądarkę, więc jakąś musimy mieć. Załozyłem sobie chrome, bo prawdopodobnie wielu z was ma to już w systemie. Jeśli nie – instalujemy sobie chrome, czy chromium jeśli ktoś woli, a potem:
- windows/macos: ściągamy pythona (jakiegoś z gałęzi 3) i instalujemy pythona: https://www.python.org/downloads/
ważne, by podczas instalacji zaznaczyć opcję instalacji pip oraz dodanie tego do PATH; linux – używamy naszego menedżera pakietów (zakładam, że jak ktoś ma linuxa, to umie z niego korzystać, więc instalacja nie powinna mu nastręczać problemów, ale tak dla przyzwoitości, dla debianopochodnych wpisujemy sudo apt-get install python3 python3-pip)
- odpalamy czarne okienko: w windows: naciskamy przyciski Win+R, wpisujemy cmd albo powershell i dajemy Enter, w linuxie i MacOS odpalamy jakiś Terminal.
- wpsiujemy:
python --versionpowinniśmy zobaczyć info o wersji, którą zainstalowaliśmy, analogicznie wpisujemy
pip --versionjeśli pokaże się informacja, że nie mamy takich programów, polecam spróbować python3 zamiast python, oraz pip3 zamiast pip, bo różnie się zdarza, szczególnie na linuxach...
- teraz zainstalujemy sobie paczki pythona, które wydzielą nam wyizolowane środowisko dla naszego kursu. Krok ten nie jest niezbędny, ale jak da się coś odizolować, to lepiej to zrobić. Unikniemy przykrych niespodzianek, kiedy to zaktualizujemy jakąś paczkę i coś posypie się w innym miejscu, zatem:
- dla windows, wpisujemy w czarne okienko:
pip install virtualenvwrapper-win virtualenvdla linux
pip install virtualenvwrapper virtualenvdodatkowo dla linuxa (dla MacOS nie pamiętem, ale możliwe, że też) trzeba wyedytować plik ~/.bashprofile i dodać w nim następujące linijki:
VIRTUALENVWRAPPER_PYTHON=$(which /usr/bin/python3)source $(which virtualenvwrapper.sh)
a następnie wpiasać:
source ~/.bash_profileOd tego momentu, wszystkie komendy będą wyglądać na każdym systemie operacyjnym tak samo, no chyba, że wyraźnie podkreślę, że jest inaczej.
-wpisujemy (kursrf w komendzie poniżej, to po prostu nazwa, jak macie życzenie, to swoje środowisko możecie nazwać na przykład pszemek):
mkvirtualenv -p3 kursrfcoś tam może się wyświetlić, jakieś dodatkowe okienka mogą się pojawiać i znikać, grunt żeby na końcu otrzymać znak zachęty wyglądający z grubsza tak:
(kursrf) henk@HENK:~$albo
(kursrf) C:\Users\henk>Ujęta w nawiasy nazwa kursrobotframework to nazwa virtualnego środowiska python, o którym wspominałem wcześniej i które to zapewnia nam izolację od reszty systemu.
Jeśli chcemy wyjść z tego środowiska, wpisujemy:
deactivateNo, ale my chcemy być w tym środowisku, bo jakbyśmy nie chcieli, to bym się nie produkował tyle, żeby to opisać, więc wpisujemy:
workon kursrfTeraz mały trick – (większość pewnie zna, ale) to powyżej to sporo pisania, a my jesteśmy leniwi, więc wystarczy zacząć wpisywać: workon ku i nacisnąć tabulator – powłoka podpowie nam nazwy środowisk, które mamy, a po wpisaniu samego workon zobaczymy listę wszystkich środowisk, które stworzyliśmy.
No dobra, to skoro jesteśmy już wewnątrz środowiska, możemy zacząć instalować w nim upragnione przez nas paczki. Tak na dobrą sprawę, to jeśli ktoś wie co robi i nie chce się bawić ze środowiskami wirtualnymi, to może zacząć od tego momentu. Zaczynamy wpisywać komendy (webdrivermanager – nie mylić z webdriver-manager):
pip install robotframework robotframework-seleniumlibrary webdrivermanagerJak skończy się instalować, wpisujemy komendę, która zainstaluje nam tzw. Webdriver, czyli program, który umie sterować naszą przeglądarką. Ponieważ założylismy, że używamy chrome, wpisujemy:
webdrivermanager chromeI sprawdzamy, czy wszystko poszło gładko wpisując:
robot --versionchromedriver --versionTutaj mała dygresja, programiści chromedrivera czy chrome mają gdzieś kompatybilność, więc pewne wersje chrome są kompatybilne tylko z pewnymi wersjami chromedrivera. Więc może się wcześniej, czy później zdarzyć, że podczas automatyzacji przywiata was komunikat, że ta wersja chromedrivera nie działa już z tą wersją chrome (coś takiego: This version of ChromeDriver only supports Chrome version 88) bo wielce prawdopodobne, że wersja chrome wam urośnie, a wasz chromedriver dalej będzie stary. Wtedy instalację webdrivera trzeba będzie powtórzyć. Opis kompatybilności znajdziecie tu: https://chromedriver.chromium.org/downloads
Tutaj kończy się wspaniały etap instalacji, jego wspaniałość polega zasadniczo na tym, że robi się to tylko raz. Teraz przystępujemy do pisania naszego pierwszego testu automatycznego. Wybieramy zatem jakiś katalog, tworzymy w nim plik o nazwie kończącej się rozszerzeniem robot. Na przykład subskrybuj.robot
Można to zrobić z linii komend, albo zwyczajnie otworzyć sobie ulubiony edytor i zapisać plik jako subskrybuj.robot właśnie.
Tu natrafiamy na mały problem organizacyjny. RobotFramewok używa kilku spacji, bądź tabulatora jako separatora, za to wykop ochoczo wycina nadmiarowe spacje, łącząc je w jedną. Dlatego skryptów automatyzujących nie będziecie mogli tak po prostu skopiować z treści tego wpisu, bo spacje w nich zastąpiłem spacjami nierozdzielającymi. RobotFramework z kolei nie za bardzo lubi spacje nierodzielające, więc na potrzeby „wizualizacji” kodu we wpisie będę używał tych spacji nierozdzielających, a wy będziecie musieli to przepisać, albo skorzystać z linków do pastebin, które bądą pod fragmentami kodu.
x x – pomiędzy x jest sześć spacji nierodzielającychy y – pomiędzy y było sześć zwykłych spacji, ale wykop skomasował je w jednązatem nasz plik subskrybuj.robot powinien wyglądać tak
https://0bin.net/paste/CYnMgsxI#GZ2EvDCV3-OcNFgo2qOsfpSHrhBbQQQb0s1fMbkFNv5
*** Settings ***Library SeleniumLibraryLibrary Dialogs*** Variables ***${username} TU_WPISZ_SWÓJ_LOGIN${password} TU_WPISZ_SWOJE_HASŁO*** Test Cases ***Subscribe TagOpen Browser [https://www.wykop.pl/zaloguj/](https://www.wykop.pl/zaloguj/) chromeInput Text (//input[@name='user[username]'])[2] ${username}Input Password (//input[@name='user[password]'])[3] ${password}Click Element //button[text()='Zaloguj się']Execute Manual Step Enter Two Factor authentication code, then click Weryfikuj kod on webpage. \nAfter all click PASS in this window. If you do not use 2FA, just click PASS.Go To [https://www.wykop.pl/tag/kursrobotframework/](https://www.wykop.pl/tag/kursrobotframework/)Run Keyword And Ignore Error Click Element //*[contains(text(), 'obserwuj') and not(contains(text(), 'nie'))]Go to [https://www.wykop.pl/mikroblog/](https://www.wykop.pl/mikroblog/)Element Should Contain (//*[@class='fix-tagline'])[2] kursrobotframeworkTaki oto potworek otwiera przeglądarkę, loguje się na wykop, prosi o podanie kodu 2FA, subskrybuje tag ignorując krok jeśli tag już subskrybujesz, a na koniec sprawdza, czy udało się dodać tag do subskrybowanych.
Nie przejmujcie się na razie jeśli nie rozumiecie wielu magicznych napisów, wyjaśnię je już w następnym odcinku, pokaże jak je ukryć, żeby nie szpeciły kodu oraz omówię jak działa automatyzacja przeglądarki w ogólnym przypadku
źródło: comment_1611689119ALKaQzzssKGsEmBb4xyP93.jpg
Pobierzźródło: comment_16116905024UauqJfZR5F8dj8BYuotgL.jpg
Pobierz