Selenium w C# 🧙: od podstawowych metod po Page Object Model

Nauczę Cię skutecznie i ludzkim językiem pisać testy Selenium. Dołącz do kursu online w formie wideo z zadaniami.

Zapisy są zamknięte. Dołącz do listy mailingowej, a poinformuję Cię o otwarciu zapisów.

„Konkretne tłumaczenie skomplikowanych zagadnień”Dominika, studentka na testelka.pl 💛  

Z moim wsparciem merytorycznym na pewno zrozumiesz!

Czego się nauczysz:

  • pisać testy wykorzystując Page Object Model,
  • pobierać konfigurację i dane testowe z pliku,
  • budować zaawansowane selektory CSS i XPath,
  • uruchamiać testy w Selenium Grid,
  • czekać na elementy i inne warunki,
  • wykonywać zrzuty ekranu w teście,
  • inne bajery: obsługa ramek (iframe), praca z klasą Action (gesty), obsługa alertów i ciasteczek… i więcej!

Co studenci mówią o moich kursach Selenium:

Jest to zdecydowanie najlepszy kurs z automatyzacji Selenium w C#, na jaki trafiłam, a próbowałam już i szkoleń stacjonarnych i różnych kursów online. W przeciwieństwie do większości kursów, jest oparty na praktycznym rozwiązywaniu konkretnych zadań i problemów. Zagadnienia są prosto i logicznie wytłumaczone, dlatego wystarczy podstawowa znajomość C#, żeby zacząć. Zadania ułożone w bardzo przemyślany sposób, wymagają zastosowania wiedzy z poprzednich lekcji. Na mnie pozytywna energia Testelki działała bardzo motywująco, w dodatku po przerobieniu części kursu, udało mi się przeprowadzić rekrutację na testera automatyzującego. Polecam!

Anna, studentka Selenium w C# na testelka.pl

Dlaczego Selenium na testelka.pl?

Uczysz się kiedy Ci pasuje

To nie jest dwudniowe szkolenie, z którego nic nie będziesz pamiętać. Dostęp jest dożywotni, a lekcje przerabiasz kiedy Ci pasuje.

Praktyka!

W ramach kursu otrzymujesz nie tylko lekcje ale też zadania z objaśnieniem możliwego rozwiązania w formie wideo. Ponadto, przed lekcjami o POM będziesz mieć do wykonania projekt testowy.

Moje wsparcie merytoryczne

W ramach kursu dostajesz moje wsparcie merytoryczne. Pod każdą lekcją możesz zadać pytanie, a ja odpowiadam z reguły tego samego dnia. To nie jest grupa samopomocowa na Facebooku, tylko wsparcie merytoryczne z prawdziwego zdarzenia.

Co studenci mówią o moich kursach Selenium:

Dzięki kursom TestElki z Selenium Web Driver C# dostałem lepszą pracę. Bardzo przydatne zagadnienia tłumaczone w jasny i przejrzysty sposób na filmikach. Ela dzięki wielkie za ten kurs! Duża kawa w Twoją stronę ! 🙂

Przemysław, programista testów automatycznych, student Selenium w C# na testelka.pl

Już 652 studentów zaufało moim kursom. Teraz czas na Ciebie!

Wskakuj na pokład i pchnij swoją karierę w kierunku automatyzacji testów!

FAQ

Dla kogo jest ten kurs?

Przede wszystkim dla każdego, kto już jest testerem, ale jeszcze nie automatyzującym. Ale z tego kursu skorzystają także ci, którzy automatyzowali już jakieś testy jednak nie w Selenium. Jeżeli nie jesteś jeszcze testerem i nie znasz podstawowej terminologii, pewne zagadnienia mogą się dla Ciebie okazać niejasne. Możesz je jednak nadgonić na bieżąco posiłkując się internetem, jednak weź pod uwagę, że będzie to wymagać od Ciebie trochę więcej pracy.

Żeby wycisnąć z tego kursu jak najwięcej, dobrze mieć podstawy programowania w C#. Bez tego też możesz przerobić kurs, ale będziesz musiał/musiała nadganiać materiał na bieżąco korzystając z zewnętrznych materiałów.

Poniżej znajdziesz listę zagadnień, które wpisują się w moją definicję podstaw programowania. Ważne żeby poniższe elementy rozumieć i umieć stosować.

  • Co to są zmienne i typy danych?
  • Co to jest null?
  • Co to jest konkatenacja (łączenie łańcuchów tekstowych)?
  • Co to jest klasa i obiekt?
  • Co to są pola klasy?
  • Czym są właściwości
  • Co to są metody i parametry?
  • Co to jest konstruktor i jak utworzyć obiekt klasy?
  • Co to jest klasa i metoda statyczna?
  • Co to są wyjątki?
  • Przechwytywanie wyjątków: blok try catch
  • Co to jest interfejs?
  • Co to są i jak używać pętli: foreach, for, while, do while?
  • Co to jest i jak używać instrukcji warunkowej if?
  • Co to jest znak ucieczki?
  • Co to są wyrażenia lambda?
  • Co to jest i jak wykonać konwersję i rzutowanie typów?
  • I ogólnie co to jest programowanie obiektowe i na czym polegają jego paradygmaty?

Dla kogo ten kurs nie jest?

Ten kurs nie jest dla osób, które potrafią zbudować testy w oparciu o POM i nie mają problemu w korzystaniu z dokumentacji Selenium. Nie jest on też dla osób, które chcą pisać w innych językach niż C#. Selenium się mocno między sobą nie różni, ale nie znam specyfiki innych języków, np. Pythona, dlatego bezpieczniej będzie, jeżeli sięgniesz po materiały przygotowane przez specjalistów z danego języka.

Nie polecam też tego kursu osobom, które jeszcze nie są testerami. Zakładam, że nie muszę tłumaczyć podstawowej terminologii ani w ogóle koncepcji testów.

Czy dostanę dostęp do wszystkich lekcji od razu?

Tak! W momencie udanego zakupu dostajesz dostęp do wszystkich materiałów w ramach Twojego członkostwa.

Czym się różni kurs na testelka.pl od innych kursów (np. na Udemy)?

W kursie na testelka.pl teorię ograniczyłam do niezbędnego minimum, a z reguły wplatam ją w praktykę. Slajdy z kodem? Tylko, jeżeli coś jest naprawdę trudne i wymaga małego wprowadzenia. Będziesz poznawać Selenium i trochę też programowanie, poprzez działanie. W ramach kursu dostajesz także zadania, których rozwiązania omawiam w formie wideo. Mam też dowody (feedback studentów) na to, że moje lekcje są świetnie wytłumaczone, a nawet skomplikowane zagadnienia są zaprezentowane w przystępny sposób.

Na czym polega wsparcie merytoryczne?

Wsparcie merytoryczne jest realizowane poprzez sekcję pytań i odpowiedzi pod każdą lekcją. Czyli jeżeli coś jest niejasne, to tam właśnie pytasz, a ja odpowiadam. Pamiętaj, że to nie są konsultacje. W ramach wsparcia merytorycznego odpowiadam na pytania i wątpliwości dotyczące zagadnienia omawianego na lekcji lub w zadaniu na przykładzie strony, którą omawiamy w materiale.

A co jeżeli dołączę i okaże się, że ten kurs jednak nie jest dla mnie?

Jeżeli w ciągu 14 dni od daty zakupu stwierdzisz, że to nie dla Ciebie daj znać – oddam Ci pieniądze.

Jak wygląda nauka? Czy będą jakieś zadania?

Tak! Każdy nowy temat kończy się zadaniem, którego rozwiązanie (albo możliwe rozwiązania) omawiam także w materiale wideo. Przed lekcjami o Page Object Model dostaniesz też do wykonania projekt testowy, czyli napisanie określonych testów do naszej testowej aplikacji.

Ile lekcji zawiera kurs?

Kurs Selenium w C# składa się ze 100 lekcji podzielonych na 12 modułów.

Czy muszę znać język angielski

Kurs prowadzony jest w języku polskim. W kodzie np. nazwy zmiennych i metod będziemy pisać w języku angielskim, bo to standard. Angielski dobrze umieć nie pod kurs, ale pod kątem rozwoju kariery w IT, bo dokumentacja do narzędzi, w tym np. do Selenium, jest po angielsku.

Czy wystawiasz faktury?

Tak, faktury generują się automatycznie na podstawie danych, które wprowadzisz w trakcie zamówienia. Nie zapomnij więc podać danych firmy jeżeli zamawiasz na firmę.

Uwaga: mimo tego, że prowadzę działalność w Hiszpanii i tutaj mam siedzibę, na fakturze zobaczysz stawkę VAT odpowiadającą krajowi, który jest siedzibą Twojej firmy/Twoim adresem zamieszkania. Wynika to z tego, że stawki VAT dla produktów cyfrowych odpowiadają krajowi nabywcy, nie sprzedawcy. Jeżeli Twoja firma ma poprawny europejski numer VAT i zostanie on poprawnie zweryfikowany podczas zamówienia, stawka VAT zostanie odjęta od sumy zamówienia i zapłacisz stawkę bez VAT.

Czego potrzebuję, żeby móc korzystać z kursu?

Komputera z dostępem do internetu i przeglądarką. Optymalnie będzie, jeżeli nie będzie to laptop służbowy, bo te potrafią mieć konfigurację uniemożliwiającą wykonanie pewnych akcji. Jedyny znany mi przykład takiej sytuacji to postawienie lokalnej aplikacji na potrzeby kursu testowania API w RestAssured.

By mieć dostęp do samego kursu wystarczy nawet smartfon z dostępem do internetu ale przeglądanie nie będzie wtedy wygodne – kod może być słabo widoczny na mniejszych ekranach. Kurs jest przygotowany na Windowsie i przy użyciu przeglądarki Chrome, więc najłatwiej Ci będzie korzystając właśnie z Windowsa i przeglądarki Chrome. Kurs nie jest dostępny offline.

Na jakim systemie operacyjnym przeprowadzany jest kurs?

Wszystko pokazuję na Windows 10/Windows 11. Mimo, że samo Selenium nie będzie się różnić w zależności od systemu to już zachowanie przeglądarek może. Nie poruszam w kursie tematyki specyficznego zachowania przeglądarek na różnych systemach operacyjnych.

Czy z konta może korzystać więcej niż jedna osoba?

Konto jest imienne i może z niego korzystać tylko jedna osoba. Współdzielenie konta z innymi osobami jest niezgodne z regulaminem, który akceptujesz w momencie zakupu. Jeżeli chcesz wykupić co najmniej 5 dostępów (np. na firmę) skontaktuj się ze mną poprzez formularz kontaktowy.

Czy materiały można ściągnąć?

Nie, dostęp do materiałów jest tylko online za pośrednictwem strony Testelka.pl.

Czy otrzymam certyfikat?

Nie przeprowadzam egzaminów. Mogę Ci jednak wystawić certyfikat uczestnictwa. W takim certyfikacie znajdzie się informacja o tym jaki procent lekcji oznaczyłeś/aś jako ukończone.

Lista lekcji

Poniżej zobaczysz pełną listę lekcji i zadań w kursie Selenium. Skorzystaj z pierwszych pięciu lekcji DEMO i zobacz jak wyglądają lekcje w kursie.

Pierwsze kroki

Przygotowanie środowiska (LEKCJA DEMO)
Konfiguracja: Selenium i ChromeDriver (LEKCJA DEMO)
Demo Selenium i testowanie asercji (LEKCJA DEMO)
Nawigacja pomiędzy stronami (LEKCJA DEMO)
Zamykanie sesji i okna przeglądarki (LEKCJA DEMO)
Zadanie: zamykanie sesji i okna przeglądarki
Źródło strony, url i tytuł
Zadanie: źródło i tytuł strony
Ustawienia okna przeglądarki
Zadanie: ustawienia okna przeglądarki

Proste lokatory

Metody lokalizujące
Znaczniki i konsola deweloperska
Mechanizmy lokalizujące: nazwa klasy, id, atrybut name, nazwa taga
Mechanizmy lokalizujące: szukanie po linku
Zadanie: proste lokatory

Selektory CSS

Co to jest CSS i do czego służą selektory CSS
Tagi i atrybuty w selektorach CSS
Selektory specjalne – id i klasa elementu
Zadanie: atrybuty w selektorach CSS
Fragmenty wartości atrybutów
Dzieci, potomkowie, bracia
Zadanie: dzieci, potomkowie, bracia
Selektory pseudoklas: pozycja
Selektory pseudoklas: typy i pusty element
Selektor negacji

XPath

Co to jest XPath i do czego służy
Atrybuty i tagi
Fragment atrybutu i szukanie po tekście
Zadanie: atrybuty, tagi i tekst
Dzieci i potomkowie
Rodzice, przodkowie i rodzeństwo
Pozycja
Zadanie: relacje
Negacja

Interakcje z elementami

Timeouty
Klikanie w elementy i wprowadzanie tekstu
Zadanie: testy logowania
Zasada DRY (Don’t Repeat Yourself)
Wgrywanie pliku z dysku

Czekanie i pobieranie informacji

Explicit Wait, czyli jawne czekanie
ExpectedConditions
Pobieranie informacji o elementach: położenie, rozmiar, nazwa taga, czy wyświetlony, czy zaznaczony, czy aktywny
Pobieranie informacji o elementach: wartości CSS, atrybuty i właściwości JavaScript oraz szukanie elementów w elemencie
Zadanie: informacje o elementach

Gesty

Klikanie oraz przesuwanie kursora myszki
Prawy przycisk myszy oraz podwójny klik
Akcje na klawiaturze: przytrzymanie klawisza i wprowadzenie tekstu
Zadanie: akcje na klawiaturze i gesty myszy
Przesuwanie elementów
Zadanie: przesuwanie elementów

Wyższa szkoła jazdy

Ramki
Zadanie: ramki
Wykonywanie skryptów JavaScript
Zadanie: JavaScript
Ciasteczka: pobieranie ciasteczek
Usuwanie i dodawanie ciasteczek w Selenium
Co, gdy nie mamy pełnej nazwy ciasteczka?
Zadanie: Ciasteczka
Wyskakujące okienka (alerty)
Zadanie: wyskakujące okienka
Praca na kilku oknach przeglądarki
Zadanie: praca na kilku oknach przeglądarki
Listy rozwijane: pobieranie informacji
Listy rozwijane: zaznaczanie i odznaczanie opcji
Zadanie: listy rozwijane
Zrzuty ekranu
Zrzuty ekranu: przykład

Drivery i Selenium Grid

Inicjalizacja driverów: Chrome, Firefox, Opera, Edge, IE
Selenium Grid
Selenium Grid: RemoteWebDriver
Selenium Grid: konfiguracja
Selenium Grid: konfiguracja w plikach JSON

Projekt testowy

Projekt testowy: testy koszyka
Projekt testowy: testy płatności
Projekt testowy: testy kuponów

Page Object Model

Wprowadzenie do Page Object Model
Pierwszy test w POM
Pierwsze klasy Page Object
„Chainowanie” metod
Czekanie po akcji vs czekanie przed akcją
Zadanie: dwa kolejne testy w POM
Rozszerzenie metody AddToCart() i przepisanie dwóch kolejnych testów
Zadanie: testy koszyka w POM
Testy płatności w POM
Wydzielenie klas Page Object i referencje do projektów
Zadanie: testy płatności w POM
BaseTest: bazowa klasa testu
CustomAssert: niestandardowe asercje
TestHelpers: metody pomocnicze
Jedna metoda, ale dwa typy zwracane
BasePage: bazowa klasa Page Object
Page Object: jeden poziom głębiej
Parametryzacja drivera
Refaktoring: nowy driver
Driver factory

Konfiguracja i dane testowe

Konfiguracja z pliku JSON
Deserializacja JSONa
Refaktoring: system operacyjny w parametrze drivera i URL strony
Dane testowe z pliku JSON
Użycie w testach danych testowych z pliku

Selenium 4

Upgrade/instalacja
Zmiany typów parametrów
Nowe okno lub karta
Względne lokatory
Basic Auth
Wykrywanie zmian w DOM
Logi w konsoli przeglądarki
Wyjątki JavaScript
Przechwytywanie ruchu sieciowego
Metryki wydajności
Drukowanie strony
Shadow DOM
Informacje o elementach
Grid
Grid: przykłady

+ bonus: kurs raportowania w Allure

Kurs raportowania w Allure

Wprowadzenie
Konfiguracja testów
Instalacja Allure
Wygenerowanie raportu
Historia, czyli zapewnienie sobie danych do trendu
Github i klucze SSH
Wrzucenie kodu na GitHub
Instalacja TeamCity
TeamCity i Github
TeamCity: uruchomienie testów
TeamCity: raporty Allure
Suites (zestawy testów) i description (opis)
Severity i wyłączone testy
Kategorie błędów (categories)
Powtórki testu (retries)
Informacje o środowisku
Zrzuty ekranu w raporcie
Właściciel testu i linki

Halko!

Tu Ela Sądel! Już od prawie trzech lat tworzę kursy w ramach testelka.pl. Wcześniej pracowałam zarówno w korporacjach jak i startupach testując manualnie, pisząc testy automatyczne UI i API oraz testując na przykład rozwiązanie oparte o Business Intelligence. Kursy tworzę zarówno w oparciu o Javę jak i C#, chociaż jakby mnie zapytać, to nie umiem powiedzieć, który język lubię bardziej.

Najważniejsze jest dla mnie wytłumaczyć wszystkie zagadnienia w taki sposób, żeby mimo swojego skomplikowania stały się absurdalnie jasne. I mam dowody na to, że to działa.

Co o moich materiałach mówią studenci

(i wcale im za to nie płacę)

Naprawdę bardzo dobry kurs, nauka to była czysta przyjemność 🙂 Każde zagadnienie było bardzo dobrze i dokładnie wytłumaczone, i mimo, że kontakt w komentarzach w razie wątpliwości czy problemów był ekspresowy, to musiałam z niego skorzystać zaledwie kilka razy – po prostu wszystko wiedziałam z filmów 🙂 Dodatkowo atmosfera, jaką tworzysz dla kursantów zarówno tak na co dzień w komunikacji jak i podczas lekcji jest naprawdę bardzo pozytywna  – aż chce się uczyć 🙂 Kurs jest bardzo obszerny – mnóstwo informacji przekazane w przystępny sposób. Twoja wiedza i umiejętności są naprawdę imponujące 🙂 Polecam każdemu kto chciałby rozwijać się w kierunku automatyzacji testów, warto 🙂 

Patrycja, studentka Selenium w Javie na testelka.pl

Trafiłam na testelka.pl szukając informacji o automatyzacji testów w Selenium. Początkowo odnalazłam kilka bezpłatnych lekcji Eli na YouTube i od razu wiedziałam, że chcę więcej! Zapisałam się na listę i czekałam na informacje o rozpoczęciu kursu. Kiedy tylko ruszyła sprzedaż, nie wahałam się ani chwili. Zakup członkostwa był jedną z lepszych inwestycji w mój zawodowy rozwój. Całość stanowi bardzo uporządkowaną porcję wiedzy, która przekazana jest w przystępny sposób. W każdej chwili można wrócić do konkretnego zagadnienia lub poprosić o wsparcie. Z czystym sumieniem polecam! 

Aśka, studentka Selenium w C# na testelka.pl

Jeśli zastanawiasz się nad kursem selenium to królowa jest tylko jedna. Czy kurs robi robotę? No wiesz… w 2,5 miesiąca zostałem testerem automatyzujacym, wiec oceń sam. Ja polecam, nic lepszego nie ma, przestań szukać, kupuj, ucz się i powodzenia!” 

Tomek, Inżynier ds. rozwoju testów w Sii i student Selenium w Javie

Kurs przełamał moją niechęć do testów automatycznych. Nauczyłam się odnajdywać elementy na stronie, tworzyć zrozumiałe scenariusze oraz analizować komunikaty błędów. To była bardzo dobra inwestycja. Dzięki temu, że wszystko było jasno wytłumaczone nie pogubiłam się w trakcie i byłam w stanie ukończyć ten kurs. Teraz czuję się zdecydowanie pewniej i zamierzam wykorzystać moją wiedzę w codziennej pracy.

Ewa, Test Engineer i studentka Selenium w Javie

Nareszcie trafiłam na kogoś kto mówi moim językiem i tłumaczy zagadnienia w prosty i logiczny sposób. Dzięki temu kursowi poczułam się pewniej w testach automatycznych i poczułam, że mogę i chcę „więcej”. Największą zaletą tego kursu jest idealna proporcja pomiędzy teorią a praktyką. Polecam dołączenie do Testelki zwłaszcza początkującym testerom, lub osobom które chcą podszlifować podstawy, ale kurs jest tak naprawdę przeznaczony dla każdego. Dla mnie: to najlepiej wydane pieniądze w życiu.

Ela, była studentka testelka.pl

Po pierwsze bardzo dziękuję za Twoje kursy – przede wszystkim Selenium w Javie i sama Java (chociaż kupiłam Twój kurs ze względu na Selenium w C# ;-). Przede wszystkim wiedza o selektorach i jak je tworzyć pomogła mi na studiach i pomoże w tworzeniu projektu na zaliczenie. Za wiedzę z kursu Selenium w Javie zapunktowałam na rozmowie i dostałam pracę 😉 Polecam Twoje kursy każdemu, kto pyta skąd się uczę i mam nadzieję kilka osób skusi się lub już się skusiło na dołączenie do Testelki! Pozdrawiam serdecznie i życzę dalszych sukcesów przy tworzeniu tak świetnych kursów!

Paulina, była studentka na testelka.pl

Świetnie tłumaczysz! Tematy, które wybierasz są ciekawe (ew. są nudne, ale ciekawie przedstawione, a to jeszcze większy plus dla Ciebie). Trochę się naszukałam zanim wybrałam Twój kurs i to był strzał w dziesiątkę! Na co dzień pracuję jako tester, mam kilka książek o automatyzacji przeczytanych, ale dzięki Tobie cała ta moja wiedza skleiła mi się w końcu w jedną całość 🙂 Planuję jeszcze tu wrócić i dokończyć Twój kurs, także mam nadzieję, że nie przestaniesz go rozwijać, bo robisz kawał dobrej roboty! 🙂

Jest jeszcze jedna rzecz za która chciałabym Cię pochwalić – bardzo cenię sobie ludzi, którzy potrafią wyjaśnić skomplikowane rzeczy w prosty sposób. To rzadka cecha, a Ty ją masz 🙂

Sylwia, Junior Quality Assurance Engineer w Hycom

Jestem testerem oprogramowania z rocznym doświadczeniem. Już wcześniej nieco „programowałem”, także w pracy w wolnych chwilach pisaliśmy testy automatyczne, ale z perspektywy czasu nie było to nic wybitnego. Kurs mi zajął z przerwami około 2 miesiące może 2,5 miesiąca. Liczę czas łącznie z zrobieniem notatek plus przerobienie samemu na własnych przykładach materiałów. Plusy tego kursu: + dobre objaśnienie zagadnień (fajne te slajdy z prezentacji, dużo pomagają) i widać, że miałaś przemyślane jak to tłumaczysz, + dużo zagadnień wyjaśniasz w tym kursie (dlatego trzeba wiele czasu, aby go przerobić), bo są i Actions i RemoteWebDriver, + zadania na koniec danego działu, w celu powtórzenia, + sam projekt, który objaśnia POM jest dla mnie największym atutem tego kursu, bo w internecie jest dużo kursów, które uczą automatyzować, ale niestety nie mają tego wzorca albo go pokazują na 2-4 klasach i radźcie sobie sami, a tutaj mamy najpierw zrobienie bez POM i następnie przerabianie co jest fajne i tego jest dużo więcej. Ogólnie z kursu jestem bardzo zadowolony, bo wiem, że z niego wiele wyniosłem i już czuję się mocniej odnośnie Selenium.

Igor, były student na Testelka.pl

Absolutnie nic nie ryzykujesz!

W przypadku, gdy stwierdzisz, że to nie dla Ciebie i dasz mi o tym znać w ciągu 14 dni od momentu zakupu, zwrócę Ci pieniądze. Po prostu.