Metoda ".each" służy do interakcji z wieloma elementami i wykonuje podaną funkcję, raz dla każdego elementu tablicy.
Składnia
cy.get('.connectors-each-ul>li')
.each(function($el, index, $list){
console.log($el, index, $list) })
Tutaj używamy tablicy. Jest ona iterowana i po kolei każdy element jest przypisywany do zmiennej $el, którą możemy wykorzystać w dowolnej operacji.
Parametry
Parametry przekazywane to:
$el - bieżąca wartość w kodzie powyżej to $el. Trzeba podać ten parametr.
index - indeks bieżącego elementu w tablicy. Jest to opcjonalny parametr.
$list - odniesienie do obiektu, na którym wywołujemy funkcję. Jest to parametr opcjonalny.
Zobaczmy jak to wygląda na przykładzie:
W naszym teście wchodzimy na stronę, następnie logujemy się. Po zalogowaniu na stronie głównej widzimy menu "Quick Launch" w którym mamy takie kategorie jak "Assign Leave", "Leave List", "Timesheets", "Apply Leave", "My Leave" oraz "My Timesheet".
Poniżej możemy zobaczyć jak to wygląda w kodzie:
A więc to menu jest zbudowane za pomocą tabeli, która ma klasę "quickLaungeContainer" w środku znajduję się znacznik wiersza <tr> a w nim poszczególne kategorie umieszczone są w znacznikach kolumn <td>
W naszym teście, będziemy chcieli sprawdzić wszystkie kategorie z naszego menu i jeśli istnieje tam taka kategoria jak "Leave List" będziemy chcieli w nią kliknąć.
Oto kod naszego testu:
A więc logujemy się do naszego konta:
następnie dostajemy się do menu a dokładniej do tabeli po przez klasę, w tabeli szukamy wszystkich kolumn <td> następnie definiujemy naszą metodę each gdzie każda kolumna <td> zostaje przypisana do $el.
Tworzymy zmiennÄ… elementText gdzie z wszystkich kategorii wyciÄ…gniemy sobie ich tekst.
Następnie po przez if tworzymy warunek, jeżeli nasza kategoria będzie mieć tekst "Leave List" to weźmy tą kategorie i kliknijmy w nią.
A oto jak wyglÄ…da nasz test po uruchomieniu go:
Jeśli, ten artykuł był dla Ciebie ciekawy, możesz wspomóc mnie i dodać mi siły przy pisaniu kolejnych artykułów kupując kawkę ;)
Dzięki !