
Witam serdecznie, w dzisiejszym wpisie ogarniemy sobie Pythona.
Pokażę wam, co trzeba pobrać oraz skonfigurować, jak stworzyć projekt, no i wiadomo jakieś proste testy.
Niezbędne narzędzia:
Pobieramy pythona https://www.python.org/downloads/ (waga 25,2MB).

Uruchomić instalator najlepiej jako administrator. Zaznaczam add python 3.8 to PATH, może się przyda, nie zaszkodzi. Klikamy następnie customize installation.

Zostawiamy tak jak jest.

Ja wole sobie zainstalować na C w katalogu a nie jakiś appdatach 🙂

I pyk instaluje się.


I zaznaczamy opcje disable path length limit i to tyle. Python gotowy.
Lecimy teraz z IDE będziemy kodzić w pycharmie, ponieważ to ta sama firma co robi Inteljii Idea a jak wiadomo, to najlepsze IDE jakie może być.
Link tutaj : https://www.jetbrains.com/pycharm/download/#section=windows (wybieramy wersje community [waga : 275mb]).
Jak się pobierze, standardowo instalujemy.







Dobra no i odpalamy, nasze IDE.
Nasz pierwszy projekt:




Klikamy nowy projekt nazywamy go lokalizacje możemy zostawić na końcu dopisać nazwę unikalną testu.

Wbijamy na existing interpreter.

Następnie interpreter powinno na screenie widać ze miałem pythona 2.7 kiedyś więc przeglądam za binarką najnowszego.

Klikamy ok i create.


W Javie byśmy mieli ogrom rzeczy, tutaj nie mam nic poza external lib pythona.
Tworzymy package a w niej klasę Pythona, pierwszą do testów.



Tworzymy a domyślne wywalamy.


https://chromedriver.chromium.org/downloads
Potrzebujemy drivera Chrome, potem będzie o Firefoxie.
Dobra pobieramy od razu driver Firefoxa.
https://github.com/mozilla/geckodriver/releases

Wywaliłem sobie te drivery bezpośrednio na dysk c:/ żeby łatwiej było potem ze ścieżką, ale to bez różnicy.
Chrome odpala się poprawnie.

Firefox tak samo.

Sam kod :
from selenium import webdriver
#driver = webdriver.Chrome(executable_path=r"C:\chromedriver.exe")
driver = webdriver.Firefox(executable_path=r"C:\geckodriver.exe")
Parę słów o samym stylu kodowania w tym języku (miałem użyć epitetu, ale się powstrzymałem :D).
Po pierwsze kod musi mieć odpowiednie formatowanie, używaj alt ctrl shfit + L.


Na szybko pokażę wam błąd składniowy …

Nie zawsze akcja ctrl alt shift l pomoże.
Otwieramy jakąś stronkę.


O asercjach i adnotacjach w następnym wpisie Tutaj pokazałem taki przykładowy i patrzcie jak zmienię tekst.

Asercja nieudana zatem linijka z zamykaniem przeglądarki się nie wykona.
No i sam kod
from selenium import webdriver
driver = webdriver.Chrome(executable_path=r"C:\chromedriver.exe")
# driver = webdriver.Firefox(executable_path=r"C:\geckodriver.exe")
driver.get("https://www.bing.com")
title = driver.title
print(title)
assert title == "Bing","Tytuł nie zgadza się !"
driver.close()

No i dopisałem coś do testu, więc kilka słów wyjaśnienia, co robi nasz iście skomplikowany kod.
from selenium import webdriver
driver = webdriver.Chrome(executable_path=r"C:\chromedriver.exe")
# driver = webdriver.Firefox(executable_path=r"C:\geckodriver.exe")
driver.get("https://www.bing.com")
title = driver.title
print(title)
assert title == "Bing","Tytuł nie zgadza się !"
szukaj = driver.find_element_by_id("sb_form_go")
wpisz = driver.find_element_by_id("sb_form_q")
wpisz.send_keys("pogoda Lublin")
szukaj.click()
#driver.close()
Ulepszenie testów:
Z pakietu selenium importujemy sobie webdrivera.
Definiujemy jaki webdriver i ścieżkę do niego. Tutaj mamy oba FF i Chrome. Korzystamy z metod driver. A więc są to get – przejście do danej strony https://www
. z protokołem. Kolejny to title czyli pobranie tytułu aktualnej strony. Print to wyświetlenie w konsoli.
Assert później będzie ale w skrócie sprawdza warunek i decyduje jeśli poprawny lecimy dalej, jeśli nie to kończymy errorem.
Potem definiujemy obiekty dowolna nazwa i znów metoda drivera. find element. Mamy różne dostępne podpowiedzią możecie się dowiedzieć, jakie są dostępne. Ja użyłem by ID bo na bingu dobrze zrobione są.
Jak zdobyć ID będzie w jakimś wpisie, klikamy na elemencie prawym i tam zbadaj element i szukamy ID.

Dobra i dalej już wywołujemy akcje na naszych elementach czyli pierwszy send keys czyli takie wysyłanie tekstu oraz click czyli kliknięcie na danych element.

Funkcja którą zrobiłem aby uzyskać full screen to takie F11 w przeglądarce.
Ale my chcemy to co robi przycisk maxymalizuj.

Oto nam chodziło.

from selenium import webdriver
driver = webdriver.Chrome(executable_path=r"C:\chromedriver.exe")
# driver = webdriver.Firefox(executable_path=r"C:\geckodriver.exe")
driver.maximize_window()
driver.get("https://www.bing.com")
# driver.fullscreen_window()
title = driver.title
print(title)
assert title == "Bing", "Tytuł nie zgadza się !"
szukaj = driver.find_element_by_id("sb_form_go")
wpisz = driver.find_element_by_id("sb_form_q")
wpisz.send_keys("pogoda Lublin")
szukaj.click()
driver.save_screenshot("screnshot.png")
# driver.close()
Na dzisiaj tyle z Pythona, mam nadzieje, że tak jak i mi wydaje się wam to dość proste.
W następnym wpisie będzie więcej różnych kombinacji.
Być może remote driver. Zresztą śledźcie, udostępniajcie ! 🙂
Do następnego !!!