Wykrywanie zmian w DOM (Document Object Model) to nowość w Selenium 4. Sprowadza się to do wyłapywania zdarzeń, gdy pojawi się zmiana na jakimś konkretnym elemencie. Chodzi o to, żebyśmy mogli wychwytywać zmiany w DOM i na nie reagować w testach. Brzmi jak czarna magia, ale jak zwykle wszystko się wyjaśni wraz z przykładem.
Uwaga: ta funkcjonalność działa tylko dla przeglądarki Chrome.
Przykładowa strona
Najpierw pokażę Ci gdzie będziemy rozrabiać. O tutaj:
Ukryta treść
Nie masz dostępu do tego kursu. Wykup dostęp albo zaloguj się, by móc zobaczyć pełną lekcję.
Ponieważ użyte metody różnią się w tym wypadku dla Selenium w Javie i Selenium w C# opiszę to osobno poniżej. Zobaczysz tam przykłady kodu na naszej specjalnie przygotowanej do tego stronie.
Java
Najpierw pokażę Ci działający przykład, a potem będę tłumaczyć.
Ukryta treść
Nie masz dostępu do tego kursu. Wykup dostęp albo zaloguj się, by móc zobaczyć pełną lekcję.
To jeszcze nie koniec, przejdź do kolejnej sekcji!
C#
Najpierw pokażę Ci działający przykład, a potem będę tłumaczyć.
Ukryta treść
Nie masz dostępu do tego kursu. Wykup dostęp albo zaloguj się, by móc zobaczyć pełną lekcję.
Po co coś takiego?
Nie wiem 🤷♀️ To znaczy nie zakładam, że do niczego, raczej zakładam, że mi się nigdy nie zdarzył przypadek, w którym miało by to sens. Przykład, na którym pokazałam Ci jak to działa, możemy to tak naprawdę rozwiązać w inny sposób. Po prostu utworzyć asercję na to, że czekanie aż element zmieni klasę nie rzuci wyjątku. Poniżej podaję przykładowy test w Javie i C#.
Ukryta treść
Nie masz dostępu do tego kursu. Wykup dostęp albo zaloguj się, by móc zobaczyć pełną lekcję.
Podejrzewam, że chodzi raczej o dosłowne zastosowanie. Czyli, gdy naprawdę chcemy złapać jakiś event, a nie za pomocą eventu potwierdzić, że kolor przycisku się zmienił, bo to możemy zrobić dużo prościej. I jakby mnie ktoś pytał to taki przykład zrobiłabym właśnie bardziej jak kod, który masz powyżej.