• Przejdź do głównej nawigacji
  • Przejdź do treści
  • Przejdź do głównego paska bocznego
  • Przejdź do stopki
Testelka.pl

Testelka.pl

Testelka.pl - o technologiach w testowaniu oprogramowania

  • Kursy
    • DARMOWY: Java dla testerów
    • Selenium w Javie
    • Selenium w C#
    • Testy API w REST Assured
    • Selektory CSS
    • XPath
  • Materiały na raz
  • Blog
  • O Eli
  • Zaloguj się
  • DOŁĄCZ

Selenium 9. Zadanie: ciasteczka

Strona główna > Kursy > Kurs Selenium w Javie > Selenium 9. Zadanie: ciasteczka

Czas na zadanie z ciasteczek. Będziesz mieć okazję poćwiczyć to, co przerobiliśmy wspólnie w kilku ostatnich filmach.

Na początku filmu tłumaczę polecenie, a następnie rozwiązanie. Będzie moment żeby zatrzymać film na czas wykonania zadania – dam znać w filmie kiedy.

Polecenie do zadania:

Ukryta treść

Nie masz aktywnej subskrypcji. Wykup subskrypcję albo zaloguj się, by móc zobaczyć pełną lekcję.

Reader Interactions

Komentarze

Nie masz aktywnej subskrypcji. Wykup subskrypcję albo zaloguj się, by móc komentować.

Komentarze

  1. testeros napisał

    14 czerwca, 2019 o 9:01 am

    Hej Ela,

    udało mi się wykonać to zadanie, jednak przy każdym uruchamianiu całego testu ciągle zmienia się liczba ciastek, w różnych miejscach z 'asercjami'. Nie widzę, też żeby dany test odpalał się w trybie incognito, o którym mówiłaś. Czy wiesz co może być przyczyną ?

    Odpowiedz
    • Ela Sądel napisał

      14 czerwca, 2019 o 9:01 am

      Halko! Zacznę od końca - to nie jest tak naprawd [...] CAŁOŚĆ KOMENTARZA WIDOCZNA DLA SUBSKRYBENTÓW.

      Odpowiedz
  2. Grzegorz Migal napisał

    3 października, 2019 o 9:59 pm

    Cześć i Czołem !
    Słuchaj spędziłem dwie godziny nad jedną linijką kodu,
    system bez przerwy wyrzuca mi Null Pointer Exception
    Próbowałem już i iść w składnie i w waity, bez przerwy ten sam komunikat :-/
    Chodzi mi o ostatni Assert 🙂
    Ratunku !
    @Test
    public void ela3()
    {
    driver.get("http://motorlublin.com.pl/");
    Set raz = driver.manage().getCookies();
    Assert.assertEquals(4, driver.manage().getCookies().size());

    Cookie newCookie = new Cookie("test_cookie","test_value",".motorlublin.com.pl","/",
    new GregorianCalendar(2019,11,11).getTime(),true,true);

    driver.manage().addCookie(newCookie);
    try { Thread.sleep(5000);}
    catch (InterruptedException e) { e.printStackTrace(); }

    Assert.assertEquals("Number of the cookie is not correct",newCookie.getName(),
    driver.manage().getCookieNamed("test_cookie").getName());

    }

    Odpowiedz
    • Ela Sądel napisał

      4 października, 2019 o 11:12 am

      Cześć! Pierwsza sprawa - nie wiem czy używasz s [...] CAŁOŚĆ KOMENTARZA WIDOCZNA DLA SUBSKRYBENTÓW.

      Odpowiedz
  3. katsali napisał

    4 marca, 2020 o 8:07 pm

    Cześć, nie wiem o co chodzi, ale nie mogę w debuggerze zobaczyć ilości cookies ;/ test nie przechodzi. Nie mam pojęcia czemu.

    package DriverMethods;
    import org.openqa.selenium.Cookie;
    import org.openqa.selenium.Dimension;
    import org.openqa.selenium.Point;
    import org.openqa.selenium.WebDriver;
    import org.openqa.selenium.chrome.ChromeDriver;
    import org.testng.annotations.AfterTest;
    import org.testng.annotations.BeforeTest;
    import org.testng.annotations.Test;
    
    import java.util.Set;
    
    public class ExcerciseTwo {
        WebDriver driver;
    
        @BeforeTest
        public void driverSetUp(){
            System.setProperty("webdriver.chrome.driver", "C:\\\\Users\\\\katar\\\\Desktop\\\\start\\\\src\\\\main\\\\resources\\\\chromedriver.exe");
            WebDriver driver = new ChromeDriver();
            driver.manage().window().setSize(new Dimension(1290, 730));
            driver.manage().window().setPosition(new Point(8,30));
            driver.navigate().to("http://wikipedia.pl");
        }
        @AfterTest
        public void CloseAndQuit(){
            driver.close();
            driver.quit();
        }
        @Test
        public void cookieExercise() {
            Set cookies = driver.manage().getCookies();}} 

    Wyskakuje mi taki komunikat:

    java.lang.NullPointerException
    at DriverMethods.ExcerciseTwo.cookieExercise(ExcerciseTwo.java:34)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:567)
    at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:134)
    at org.testng.internal.TestInvoker.invokeMethod(TestInvoker.java:597)
    at org.testng.internal.TestInvoker.invokeTestMethod(TestInvoker.java:173)
    at org.testng.internal.MethodRunner.runInSequence(MethodRunner.java:46)
    at org.testng.internal.TestInvoker$MethodInvocationAgent.invoke(TestInvoker.java:816)
    at org.testng.internal.TestInvoker.invokeTestMethods(TestInvoker.java:146)
    at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:146)
    at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:128)
    at java.base/java.util.ArrayList.forEach(ArrayList.java:1507)
    at org.testng.TestRunner.privateRun(TestRunner.java:766)
    at org.testng.TestRunner.run(TestRunner.java:587)
    at org.testng.SuiteRunner.runTest(SuiteRunner.java:384)
    at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:378)
    at org.testng.SuiteRunner.privateRun(SuiteRunner.java:337)
    at org.testng.SuiteRunner.run(SuiteRunner.java:286)
    at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:53)
    at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:96)
    at org.testng.TestNG.runSuitesSequentially(TestNG.java:1187)
    at org.testng.TestNG.runSuitesLocally(TestNG.java:1109)
    at org.testng.TestNG.runSuites(TestNG.java:1039)
    at org.testng.TestNG.run(TestNG.java:1007)
    at com.intellij.rt.testng.IDEARemoteTestNG.run(IDEARemoteTestNG.java:66)
    at com.intellij.rt.testng.RemoteTestNGStarter.main(RemoteTestNGStarter.java:110)

    java.lang.NullPointerException
    at DriverMethods.ExcerciseTwo.CloseAndQuit(ExcerciseTwo.java:27)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:567)
    at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:134)
    at org.testng.internal.MethodInvocationHelper.invokeMethodConsideringTimeout(MethodInvocationHelper.java:63)
    at org.testng.internal.ConfigInvoker.invokeConfigurationMethod(ConfigInvoker.java:348)
    at org.testng.internal.ConfigInvoker.invokeConfigurations(ConfigInvoker.java:302)
    at org.testng.TestRunner.invokeTestConfigurations(TestRunner.java:619)
    at org.testng.TestRunner.afterRun(TestRunner.java:849)
    at org.testng.TestRunner.run(TestRunner.java:590)
    at org.testng.SuiteRunner.runTest(SuiteRunner.java:384)
    at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:378)
    at org.testng.SuiteRunner.privateRun(SuiteRunner.java:337)
    at org.testng.SuiteRunner.run(SuiteRunner.java:286)
    at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:53)
    at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:96)
    at org.testng.TestNG.runSuitesSequentially(TestNG.java:1187)
    at org.testng.TestNG.runSuitesLocally(TestNG.java:1109)
    at org.testng.TestNG.runSuites(TestNG.java:1039)
    at org.testng.TestNG.run(TestNG.java:1007)
    at com.intellij.rt.testng.IDEARemoteTestNG.run(IDEARemoteTestNG.java:66)
    at com.intellij.rt.testng.RemoteTestNGStarter.main(RemoteTestNGStarter.java:110)

    ===============================================
    Default Suite
    Total tests run: 1, Passes: 0, Failures: 1, Skips: 0
    Configuration Failures: 1, Skips: 0
    ===============================================

    Process finished with exit code 0

    Odpowiedz
    • Ela Sądel napisał

      5 marca, 2020 o 9:29 am

      Halko! A porównałaś ten kod z moim? Podpowiem C [...] CAŁOŚĆ KOMENTARZA WIDOCZNA DLA SUBSKRYBENTÓW.

      Odpowiedz
  4. katsali napisał

    4 marca, 2020 o 8:26 pm

    i jeszcze jedno pytanie: czemu w IntelliJ "znika" czasem opcja puszczenia testu albo debuggera??

    Odpowiedz
    • Ela Sądel napisał

      5 marca, 2020 o 9:29 am

      Nie do końca wiem co masz na myśli pisząc, że [...] CAŁOŚĆ KOMENTARZA WIDOCZNA DLA SUBSKRYBENTÓW.

      Odpowiedz
      • katsali napisał

        5 marca, 2020 o 1:33 pm

        np jak klikam prawym myszy to nie mam opcji "run test" itp. zielonej strzałki też nie mam obok @Test. Okazało się, że coś namieszałam - po poprawkach strzałka wróciła na miejsce

        Odpowiedz
        • Ela Sądel napisał

          5 marca, 2020 o 2:05 pm

          Całe szczęście, że wróciło 😀 [...] CAŁOŚĆ KOMENTARZA WIDOCZNA DLA SUBSKRYBENTÓW.

          Odpowiedz
  5. Dagmara Opałka napisał

    20 kwietnia, 2020 o 5:11 pm

    Hej, ciasteczka chyba nie za bardzo mnie lubią. Po wykonaniu prostego testu z pobraniem ciasteczek ze strony, test mi failuje i pokazuje, że aktualna liczba ciastek na stronie wikipedii to 3, po wejściu na wikipedie w tryb incognito widzę 4 ciasteczka. Czy to podobna sytuacja co przy Amazonie, ze ciastka zyja wlasnym zyciem?
    Komunikat:
    org.opentest4j.AssertionFailedError:
    Expected :4
    Actual :3

    screen: https://zapodaj.net/d6bd129385058.png.html

    Kod:

    import org.junit.jupiter.api.AfterEach;
    import org.junit.jupiter.api.Assertions;
    import org.junit.jupiter.api.BeforeEach;
    import org.junit.jupiter.api.Test;
    import org.openqa.selenium.Dimension;
    import org.openqa.selenium.WebDriver;
    import org.openqa.selenium.chrome.ChromeDriver;
    
    public class CookieTask {
        WebDriver driver;
    
        @BeforeEach
        public void driverSetUp(){
            System.setProperty("webdriver.chrome.driver", "src/main/resources/chromedriver.exe");
            driver = new ChromeDriver();
            driver.manage().window().setSize(new Dimension(1280, 720));
            driver.navigate().to("http://wikipedia.pl");
    
        }
       @AfterEach
        public void closingDriver(){
           driver.quit();driver.close();
    
        }
        @Test
        public void wikiCookies(){
    
            Assertions.assertEquals(4,driver.manage().getCookies().size());
    
        }
    }
    
    Odpowiedz
    • Ela Sądel napisał

      20 kwietnia, 2020 o 7:35 pm

      Tak sobie myślę, że w tym wypadku w momencie po [...] CAŁOŚĆ KOMENTARZA WIDOCZNA DLA SUBSKRYBENTÓW.

      Odpowiedz
      • Dagmara Opałka napisał

        20 kwietnia, 2020 o 10:49 pm

        O zapomniałam o nim! dziękuje bardzo:)

        Odpowiedz
  6. Sławek Piesko napisał

    23 grudnia, 2020 o 8:25 am

    Czy dla punktów 4 i 5 asercja może wyglądać w ten sposób?

    Assertions.assertNull(driver.manage().getCookieNamed("test_cookie"), "Cookie doesn't exist");

    ps. Jak się wstawia sformatowany kod w komentarzach? 🙂

    Odpowiedz
    • Ela Sądel napisał

      23 grudnia, 2020 o 10:45 am

      Halko! A sprawdziłeś co się stanie jak coś tak [...] CAŁOŚĆ KOMENTARZA WIDOCZNA DLA SUBSKRYBENTÓW.

      Odpowiedz
      • Sławek Piesko napisał

        23 grudnia, 2020 o 12:00 pm

        Sprawdzałem co się stanie i z test jest na pass. Jak sama wspominałaś, napisanie testu na pass wcale nie jest trudne. Dlatego postanowiłem zapytać 🙂
        Jeśli dobrze rozumiem to Assertions.assertNull sprawdza czy obiekt jest null, więc w tym przypadku sprawdzam czy cookie o name "test_cookie" istnieje. Jeśli nie istnieje to wszystko w porządku.

        Odpowiedz
        • Ela Sądel napisał

          23 grudnia, 2020 o 12:11 pm

          A widzisz, miałam pewne podejrzenie, że ta metod [...] CAŁOŚĆ KOMENTARZA WIDOCZNA DLA SUBSKRYBENTÓW.

          Odpowiedz
          • Sławek Piesko napisał

            23 grudnia, 2020 o 12:30 pm

            Po zakomentowaniu linijki z usuwaniem ciastka w konsoli pojawia się coś takiego:

            org.opentest4j.AssertionFailedError: Cookie still exist ==> 
            Expected :null
            Actual   :GeoIP=PL:18:Rzesz__w:50.03:21.99:v4; path=/; domain=.wikipedia.org;secure;
            

            Wygląda, że jest dobrze.
            ps. Faktycznie jest ściąga. Nie zwróciłem uwagi 🙂

          • Ela Sądel napisał

            23 grudnia, 2020 o 12:50 pm

            Dokładnie, wygląda ok 😉 [...] CAŁOŚĆ KOMENTARZA WIDOCZNA DLA SUBSKRYBENTÓW.

Pierwszy Sidebar

LEKCJE W KURSIE

  • Przygotowanie środowiska programistycznego (DARMOWA LEKCJA)
  • Inicjalizacja drivera i demo Selenium (DARMOWA LEKCJA)
  • Nawigacja pomiędzy stronami (DARMOWA LEKCJA)
  • Zamykanie przeglądarki lub sesji (DARMOWA LEKCJA)
  • Zadanie: zamykanie przeglądarki i sesji (DARMOWA LEKCJA)
  • Tytuł strony, URL i jej źródło
  • Zadanie: pobieranie tytułu, URLa i źródła strony
  • Ciasteczka
  • Zadanie: ciasteczka
  • Rozmiar i pozycja okna przeglądarki
  • Zadanie: rozmiar i pozycja okna przeglądarki
  • Metody lokalizujące
  • Mechanizmy lokalizujące: nazwa klasy, id, atrybut name, nazwa taga
  • Mechanizmy lokalizujące: tekst linku
  • Zadanie: proste lokatory
  • Mechanizmy lokalizujące: wprowadzenie do selektorów CSS i XPath
  • Selektory CSS: tag, id, klasa
  • Selektory CSS: atrybuty i łączenie warunków
  • Zadanie: atrybuty i łączenie warunków w selektorach CSS
  • Selektory CSS: fragment wartości atrybutu
  • Zadanie: fragment wartości atrybutów w selektorach CSS
  • Selektory CSS: relacje między elementami
  • Zadanie: relacje w selektorach CSS
  • XPath: atrybuty i tagi
  • XPath: fragment atrybutu i tekst
  • Zadanie: atrybuty i tekst w XPath
  • XPath: relacje między elementami
  • Zadanie: relacje między elementami w XPath
  • Timeouty: oczekiwanie na pojawienie się elementu i załadowanie strony
  • Interakcje z WebElementami: klikanie w elementy i wprowadzanie tekstu
  • Interakcje z WebElementami: wgrywanie pliku z dysku
  • Zadanie: interakcje z WebElementami
  • Wstęp do zasad programowania: DRY
  • Wstęp do zasad programowania: KISS
  • Wstęp do zasad programowania: YAGNI
  • Zadanie: wstęp do zasad programowania
  • Czekanie na warunki: ExplicitWait
  • Czekanie na warunki: ExpectedConditions
  • Zadanie: czekanie na warunki
  • Metody na WebElementach: pobieranie informacji o elementach i findElement()
  • Zadanie: metody na WebElementach
  • Ramki
  • Zadanie: ramki
  • Wykonywanie JavaScriptów
  • Zadanie: wykonywanie JavaScriptów
  • Obsługa alertów
  • Zadanie: obsługa alertów
  • Praca na kilku oknach przeglądarki
  • Zadanie: praca na kilku oknach przeglądarki
  • Listy rozwijane
  • Zadanie: listy rozwijane
  • Gesty w Selenium: wstęp
  • Gesty w Selenium: klik, podwójny klik oraz prawy przycisk myszy
  • Gesty w Selenium: zdarzenia klawiatury i wysyłanie tekstu
  • Zadanie: gesty w Selenium
  • Gesty w Selenium: przesuwanie obiektów
  • Zadanie: przesuwanie obiektów
  • Web Storage: metody na Local Storage i Session Storage
  • Web Storage: użycie JavaScript
  • Zadanie: WebStorage
  • Zrzuty ekranu: wykonywanie screenshotów strony i elementów
  • Zrzuty ekranu: przykład użycia screenshotów
  • Inicjalizacja driverów: Chrome, Firefox, Opera, Internet Explorer, Edge
  • Konfiguracja Selenium Grid
  • RemoteWebDriver: inicjalizacja drivera wspierającego testy w trybie rozproszonym
  • Projekt testowy
  • Omówienie projektu testowego: testy koszyka
  • Omówienie projektu testowego: testy płatności
  • Omówienie projektu testowego: testy metod płatności
  • Page Object Model: wprowadzenie
  • Page Object Model: jak zacząć budować własny framework testowy
  • Page Object Model: kolejna klasa Page Object
  • Zadanie z POM: przepisanie testu addOneProductTenTimesTest()
  • Page Object Model: refaktoryzacja kodu i klasa BaseTest
  • Page Object Model: refaktoryzacja kodu i klasa BasePage
  • Page Object Model: refaktoryzacja i nowa metoda w klasie CartPage
  • Page Object Model: części wspólne różnych stron na przykładzie HeaderPage
  • Zadanie z POM: części wspólne stron (stopka w POM)
  • Zadanie z POM: przepisanie pozostałych testów koszyka
  • Zadanie z POM: przepisanie testu płatności bez zakładania konta cz. 1
  • Zadanie z POM: przepisanie testu płatności bez zakładania konta cz. 2 - wprowadzanie danych karty
  • Page Object Model: DriverFactory
  • Plik konfiguracyjny
  • Wzorzec Singleton na przykładzie konfiguracji
  • Synchronizacja w Singletonie i konfiguracja bez Singletona
  • Dane testowe z pliku
  • PageFactory: inicjalizacja elementów i FindBy
  • Wady i zalety PageFactory oraz pozostałe możliwości

Footer

Elzbieta Natalia Sadel
Calle Marzo 9 1 D
41009 Sevilla
Hiszpania
NIF: Y7882076J

Zostań trenerem!

Regulamin
Polityka prywatności
Polityka wsparcia w ramach członkostwa

Koszulki i torby dla testerów

Pomoc
Kontakt

Poskładane z 💛 przez Automatela.pl

Ta strona korzysta z ciasteczek aby świadczyć usługi na najwyższym poziomie. Dalsze korzystanie ze strony oznacza, że zgadzasz się na ich użycie.ZgodaNie wyrażam zgodyPolityka prywatności