Wpis z mikrobloga

W apce front pisany w angularze. Klepię sobie do niego testy w Selenide.
Napotkałem problem, że Selenide tak jakby za szybko chciał klikać w dany element, jakby po stronie angulara jeszcze coś się działo w tle mimo już jego widoczności. Czy da się w jakikolwiek sposób wyegzekwować to aby Selenide poczekał na pełne wygenerowanie się frontu? Jak walczyć z dynamicznymi elementami?

Jest wątek https://github.com/selenide/selenide/issues/1040 z 2020 roku, aczkolwiek informacje tam niezbyt mi pomagają.
#testowanieoprogramowania #selenium #selenide
  • 16
@elcor: poczytaj o angularowych testabilities, z tego co wiem tylko protractor wspiera to(bo został napisany pod angulara) ale da się jsem odczekać aż callback zwróci info że wszystkie testabilities są stabilne (czyli doczytane i ich stan się już nie zmienia)
@elcor: nadpisanie metod? Np żeby click najpierw sprawdzał czy dany element jest klikalny zanim go kliknie? Strzelam bo selenide akurat nie znam
  • 0
@bb89: jest sprawdzenie klikalności elementu. No i faktycznie go klika, jak strzelam jeszcze przed wygenerowaniem się calutkiego frontu
via Wykop Mobilny (Android)
  • 0
@elcor: ty panie nie szukaj drogi, żeby zrobić testy na zielono, tylko testuj. Jak jest załadowany i klikalny element, którego kliknięcie nie powoduje tego do czego ten element został powołany, bo jakiś #!$%@? frontend się ładuje pół dnia, to ty zgłaszają błąd a nie szukaj obejścia.
@henk: Tu nie chodzi o malowanie trawy na zielono.
Flow jest taki: klikam w przycisk, generuje się nowy element listy zawierający dwa elementy.

Ręczne przeklikanie: klikam w element, są dwa elementy listy

Selenide: klikam w element - czasami jest jeden element, czasami dwa. Tak jakby klikał nie czekając aż całość się wygeneruje. Jeśli ponownie kliknę w ten element wtedy już jest okej i są dwa elementy na liście
@elcor: panie, daj sleepa przed tym clickiem, jak przy takim zabiegu zawsze będzie się generowało jak chcesz, to front nie nadąża i tyle.
@henk: No właśnie jeśli ustawi się sleepa na 5 sekund to wygląda wtedy okej. Tylko no jakoś to rozwiązanie mnie nie satysfakcjonuje. Właśnie zastanawiałem się co zrobić żeby jednak czekać na ten front
@elcor: no to ci tłumaczę, że tam jest błąd w postaci, że jak za szybko się kliknie, to front nie nadąża i wynik kliknięcia nie jest taki jak powinien. jak ktoś będzie miał wolną sieć, albo obciążonego kompa, to ten defekt może się ujawnić nawet podczas ręcznego kliknięcia.