Wyjątkowa okazja na szkolenie ISTQB online - teraz tylko 999 zł netto! (najtaniej na rynku - szkolenie dofinansowane!). Zapraszamy również na 2 dniowe szkolenie API teraz tylko 459 zł!

Selenium 4 już na horyzoncie!

gru 11, 2020

Selenium w wersji 4 jest już dostępne i pomalutku wykorzystywane na rynku. Na chwilę obecną Selenium 4 wciąż jest w wersji Alfa. Czym jest wersja Alfa? Jest to wersja, w której zmiany jeszcze nie są zamknięte i mogą ulegać kolejnym modyfikacjom, bądź nawet możemy doświadczyć usuwania wprowadzonych już funkcjonalności. To oczywiście oznacza, że  firmy wciąż czekają na wdrożenie  do swoich projektów nowej wersji Selenium 4. Na takie ruchy jeszcze przyjdzie nam trochę poczekać, ale już dzisiaj omówimy sobie różnice miedzy nową wersją 4, a wykorzystywaną do tej pory wersją Selenium numer 3.

Największą i najbardziej znaczącą zmianą jest przyjęcie protokołu sterownika sieciowego W3C. Jest to o tyle ważna zmiana architektoniczna, gdyż razem z nią otrzymujemy wartość dodaną w postaci standaryzacji komunikacji z popularnymi przeglądarkami internetowymi. Google Chrome, Safari, Internet Explorer, Edge i inne szeroko wykorzystywane przeglądarki również korzystają ze standardu W3C, dzięki czemu od teraz komunikacja miedzy Selenium, a przeglądarkami zyskuje długo wyczekiwaną standaryzację komunikacji.

Dlaczego jest to tak ważna zmiana? Otóż do tej pory w wersji Selenium 3, zdarzały się takie sytuacje, że pewne polecenia, komendy Selenium działały różnie –  w zależności o stosowanej przeglądarki internetowej!

Selenium 3 vs Selenium 4

  1. Protokół komunikacyjny (wyżej opisywany)
  • W Selenium 3 interakcja przeglądarki opiera się na protokole JSON-owym, natomiast w nowej wersji Selenium – mamy już wystandaryzowany protokół W3C, który nie wymaga kodowania i dekodowania API, więc komunikacja odbywa się bezpośrednio.
  1. Rezygnacja z obsługi niektórych przeglądarek internetowych np. Opera i Phantom JS.
  1. Nowa wersja Selenium udostępnia przebudowaną architektura Selenium GRID 
  • Usprawniona została komunikacja między Hubem a Nodami. GRID w Selenium 4 stał się nieco bardziej elastyczny. Możemy uruchamiać testy na wielu przeglądarkach, w wielu konfiguracjach, a także w wielu systemach operacyjnych. W nowej wersji Selenium będziemy mieli możliwość uruchamiania GRIDA jako całości, a nie pojedynczych Nodów i Huba. Ważna jest również integracja z Deckerem, AWS, czy Azurem. Warto również dodać, że otrzymaliśmy nieco bardziej przyjazdy interfejs użytkownika z wieloma dodatkowymi informacjami o konfiguracji i ustawieniach. Poprawiona została również obsługa błędów i wypisywania informacji.
  1. W końcu dokumentacja Selenium została mocno zaktualizowana, szczególnie jeśli chodzi o między innymi o Selenium GRID czy Selenium IDE.
  1. Nieco bardziej rozbudowana wersji Selenium IDE
  • Nowa wersja udostępnia nowe funkcjonalności i usprawnienia. Dzięki zastosowaniu protokołu W3C,  udało się osiągnąć pełną integrację z wszystkimi popularnymi przeglądarkami.

Nowe, główne funkcjonalności Selenium 4:

  1. Robienie zrzutów ekranu z konkretnego miejsca przeglądarki.
  • W wersji Selenium 3, mamy możliwość zrobić tylko screena dla całej strony internetowej. Od nowej wersji będziemy mogli zrobić screena konkretnego obszaru strony, konkretnego elementu.
WebElement saveButton=driver.findElement(By.id(“save”));

File file= saveButton.getScreenshotAs(OutputType.FILE);

File destFile =new File(“save.png”);

FileUtils.copyFile(file,destfile);
  1. Otwieranie nowej karty przeglądarki.
  • W nowej wersji Selenium mamy możliwość łatwo otworzyć np. 2 adresy URL w dwóch różnych kartach w tym samym czasie.
driver.get(”https://odlaikadoautomatyka.pl/”);

driver.switchTo().newWindow(WindowType.TAB);

driver.navigate().to(”http://www.selenium-shop.pl/”);
  1. Pobieranie współrzędnych danego elementu na stronie internetowej.
  • Dzięki Selenium 4  możemy pobierać współrzędne elementów, takie jak:
    • wymiary
    • wysokość
    • szerokość
WebElement saveButton=driver.findElement(By.id(“save”));

System.out.println(“Wysokość:” + saveButton.getRect().getDimension().getHeight());

System.out.println(“Szerokość:” + saveButton.getRect().getDimension().getWidth());

System.out.println(“Lokalizacja X: “ + saveButton.getRect().getX());

System.out.println(“Lokalizacja Y: “ + saveButton.getRect().getY());
  1. Nowa metodę switchTo().parentFrame() ­–przejście do ramki rodzica.
  2. W nowej wersji Selenium Klasa Options rozszerza każdą klasę Capabilities
  • Wsparcie DevTools dla przeglądarek Chrome i Internet Explorer. Zmiana ta daje możliwość dostępu w zasadzie do wszystkich zakładek developerskich w przeglądarkach
  1. Relatywne lokatory
  • Umożliwiają lokalizację elementu na stronie za pomocą relatywnej pozycji innych elementów na stronie względem 
  1. Narzędzia deweloperskie Chrome
  • W Selenium 4 zobaczymy kilka wewnętrznych zmian w API, m.in. w nowej wersji sterownik Chromium rozszerza klasę sterownika Remote Web. Wcześniej w Selenium 3 sterownik Chrome rozszerza się bezpośrednio na klasę Remote Web Driver.

Oczywiście to tylko część zmian. Wybrałem te, które moim zdaniem przynoszą największe zmiany i dostarczają największą wartość dodaną. Jak wspomniałem na początku artykułu Selenium 4 to wciąż wersja Alfa i na dzień dzisiejszy bardziej przyglądamy się tej wersji niż ją wykorzystujemy w codziennej pracy. Niemiej jednak, jak sami możecie już wstępnie ocenić, są w niej całkiem przydatne i ciekawe zmiany, które w przyszłości mogą znacznie poprawić nasza pracę i przyczynić się do jeszcze większego wzrostu i tak już bardzo popularnego rozwiązania jakim jest Selenium.

Autor: Tomasz Stelmach

0 komentarzy

Wyślij komentarz

Twój adres e-mail nie zostanie opublikowany.

Pozostałe:

Dobry tester oprogramowania, czyli kto?

Tester oprogramowania to osoba odpowiedzialna za weryfikowanie jakości tworzonej aplikacji - pod kątem poprawności działania, ale także spełniania przyjętych na początku projektu założeń. Odpowiada za poszukiwanie luk, sprawiających, że oprogramowanie nie spełnia...

Testowanie regresywne

Każde oprogramowanie jest co jakiś czas odświeżane, rozszerzane i zmieniane. Zmiany w kodzie mogą dotyczyć wielu aspektów, m. in.: dodawania, usuwania lub modyfikowania funkcji, adaptacji oprogramowania do nowych warunków, systemów czy umożliwienia wykorzystania...

Siedem zasad testowania oprogramowania

Testowanie oprogramowania jest nieodłączną częścią procesu tworzenia oprogramowania: pozwala znaleźć błędy, luki i defekty w produkcie, zbadać jakość i wydajność oprogramowania, a także ocenić, na ile testowany system jest zgodny z zadaną specyfikacją oraz wymaganiami...

Testowanie API – wprowadzenie

Aplikacje, systemy, elementy oprogramowania potrzebują się ze sobą komunikować. Dokładnie tak jak ludzie. Komunikujemy się, aby realizować pewne rzeczy lub wymieniać się informacjami. W tym celu wykorzystujemy różne sposoby komunikacji takiej jak: gesty, słowa, pismo,...

Asercje w Selenium

    W załączonych fragmentach kodu z poprzednich lekcji, na pewno zauważyłeś instrukcje o nazwie Assert. Właśnie o szeroko pojętych asercjach będzie traktowała dzisiejsza lekcja. Rozłożymy sobie Asercje na czynniki pierwsze. Omówimy przykłady...