• 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 2. Inicjalizacja drivera i demo Selenium

Strona główna > Kursy > Kurs Selenium w Javie > Selenium 2. Inicjalizacja drivera i demo Selenium

W tej lekcji pokażę Ci jak zainicjalizować drivera. Zobaczysz także krótkie demo Selenium.

Chcesz takich filmów więcej? Zasubskrybuj mój kanał!

Zmiana zachowania w DEMO

Poniższe demo, którego nie ma potrzeby przepisywać (jeszcze się nakodzisz przy kolejnych filmach i zadaniach, to jest tylko demo :)), nie zadziała przy obecnym zachowaniu strony Google. Teraz doszło okno informujące o ciasteczkach, które blokuje możliwość wykonania jakiejkolwiek akcji na stronie. Rozwiązanie, czyli zamknięcie tego okna, nie jest zadaniem prostym bo wymaga już umiejętności obsłużenia ramki. Ta lekcja pojawi się w module Wyższa Szkoła Jazdy.

Chcesz takich filmów więcej? Zasubskrybuj mój kanał!

Inicjalizacja drivera: linki i materiały

Żeby móc korzystać z Selenium w naszych testach i móc komunikować się z przeglądarką, potrzebny Ci będzie obiekt klasy implementującej interfejs WebDriver. Klasa implementująca będzie Ci potrzebna właśnie dlatego, że WebDriver jest interfejsem, co uniemożliwia inicjalizację obiektów wprost z WebDrivera.

Selenium dostarcza kilka klas implementujących ten interfejs przystosowanych do obsługi najpopularniejszych przeglądarek. W tym kursie będziemy korzystać z przeglądarki Chrome, a więc do inicjalizacji drivera użyjemy klasy ChromeDriver.

Oprócz obiektu klasy ChromeDriver potrzebujemy także pliku chromedriver.exe, który umożliwi komunikację z przeglądarką. Plik ten możesz możesz pobrać z tej strony.

Kod

import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
import org.openqa.selenium.By;
import org.openqa.selenium.Dimension;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.support.ui.ExpectedConditions;
import org.openqa.selenium.support.ui.WebDriverWait;

public class FirstTest {
    @Test
    public void demoTest(){
        System.setProperty("webdriver.chrome.driver","src/main/resources/chromedriver.exe");
        WebDriver driver = new ChromeDriver();
        driver.manage().window().setSize(new Dimension(1295, 730));

        driver.navigate().to("https://google.pl");
        WebElement searchField = driver.findElement(By.cssSelector("[title='Szukaj']"));
        String searchEntry = "wszechświaty równoległe";
        String title = "Wieloświat – Wikipedia, wolna encyklopedia";

        searchField.sendKeys(searchEntry);
        searchField.submit();
        driver.findElement(By.xpath(".//*[text()='"+ title +"']")).click();

        WebDriverWait wait = new WebDriverWait(driver, 5);
        wait.until(ExpectedConditions.titleIs(title));

        String entryURL = "https://pl.wikipedia.org/wiki/Wielo%C5%9Bwiat";
        Assertions.assertEquals(entryURL, driver.getCurrentUrl(), "URL is not correct");
    }
}

Reader Interactions

Komentarze

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

Komentarze

  1. kamila zmuda napisał

    2 września, 2019 o 8:36 am

    Cześć w katalogu main masz takie coś jak 'resources' jak to stworzylas i jak dodajesz tam chromedrivera??

    Jak wybieram new -resources to nie moge tam nic dodac. Wytłumacz to proszę.

    Odpowiedz
    • Ela Sądel napisał

      2 września, 2019 o 9:14 am

      Halko! Nie dodaję tego resources w ogóle - mam t [...] CAŁOŚĆ KOMENTARZA WIDOCZNA DLA SUBSKRYBENTÓW.

      Odpowiedz
  2. PODKA napisał

    8 marca, 2020 o 2:01 pm

    Cześć 🙂
    Pomimo zastosowania się do kroków związanych z pobraniem chromedrivera po starcie testu pojawia się komunikat:
    java.lang.IllegalStateException: The driver executable does not exist: C:\Users\avipo\IdeaProjects\start1\src\main\resources\chromedrive.exe
    Jakaś podpowiedź dlaczego tak jest i co zrobić żeby test się odpalił 🙂 ?
    ( używam chroma: Wersja 80.0.3987.132 (Oficjalna wersja) (64-bitowa), ściągnęłam: ChromeDriver 80.0.3987.106 )

    Odpowiedz
    • Ela Sądel napisał

      9 marca, 2020 o 3:18 pm

      Halko! Zaczęłabym od sprawdzenia, czy pod tą ś [...] CAŁOŚĆ KOMENTARZA WIDOCZNA DLA SUBSKRYBENTÓW.

      Odpowiedz
      • PODKA napisał

        10 marca, 2020 o 5:51 pm

        ooo nie kompletnie tego nie zauważyłam a wielokrotnie sprawdzałam czy mam dobrze 🙂 czasem się zdarza taki głupi błąd 🙂 Dziękuję . Teraz działa 🙂

        Odpowiedz
        • Ela Sądel napisał

          11 marca, 2020 o 3:29 pm

          Nie ma sprawy, mi się bardzo często zdarza i lit [...] CAŁOŚĆ KOMENTARZA WIDOCZNA DLA SUBSKRYBENTÓW.

          Odpowiedz
  3. ELa napisał

    31 marca, 2020 o 1:11 pm

    Hej u mnie w dalszym ciągu pojawia się poniższy błąd. Dodałam set.property oraz ścieżkę ale ciągle jest to samo. Czy mogłabyś mi coś podpowiedzieć skąd ten błąd? Pozdrawiam
    java.lang.IllegalStateException: The path to the driver executable must be set by the webdriver.chrome.driver system property; for more information, see https://github.com/SeleniumHQ/selenium/wiki/ChromeDriver. The latest version can be downloaded from http://chromedriver.storage.googleapis.com/index.html.

    Odpowiedz
    • Ela Sądel napisał

      31 marca, 2020 o 1:18 pm

      A pokaż kod 🙂 [...] CAŁOŚĆ KOMENTARZA WIDOCZNA DLA SUBSKRYBENTÓW.

      Odpowiedz
      • ELa napisał

        31 marca, 2020 o 1:44 pm

        import org.openqa.selenium.WebDriver;
        import org.openqa.selenium.chrome.ChromeDriver;
        import org.testng.annotations.Test;

        public class FirstTestSelenium {

        @Test
        public void demoTest() {

        System.setProperty("WebDriver.chrome.driver","src/main/resources/chromedriver.exe");
        WebDriver driver = new ChromeDriver();

        Odpowiedz
        • Ela Sądel napisał

          31 marca, 2020 o 1:50 pm

          Wielkość znaków ma znaczenie, powinno być webd [...] CAŁOŚĆ KOMENTARZA WIDOCZNA DLA SUBSKRYBENTÓW.

          Odpowiedz
          • ELa napisał

            31 marca, 2020 o 2:03 pm

            Ok, poprawiłam w jakimś stopniu zadziałało przeglądarka się otworzyła i od razu zamknęła.

          • Ela Sądel napisał

            31 marca, 2020 o 2:26 pm

            Zacznij od porównania na spokojnie kodu. Jeżeli [...] CAŁOŚĆ KOMENTARZA WIDOCZNA DLA SUBSKRYBENTÓW.

          • ELa napisał

            31 marca, 2020 o 3:12 pm

            Już jest wszystko dobrze. Miałam wyższą wersję chormedrivera niż przeglądarki. Dzięki za szybką pomoc.

  4. Mariusz Wojtczuk napisał

    11 lipca, 2020 o 8:43 pm

    Ja miałem błąd przy próbie odpalenia
    "Error:java: release version 5 not supported"
    Ale trzeba było dodać w POMie

     
            11.0.6
            11.0.6
         
    

    Gdzie 11.0.6 oznacza wersję Javy i pomogło ; )

    Odpowiedz
    • Ela Sądel napisał

      11 lipca, 2020 o 9:38 pm

      Halko! W poprzedniej lekcji pojawił się

      Odpowiedz
  5. Katarzyna Kurowska napisał

    26 marca, 2021 o 5:35 pm

    Czy w testach pisanych z użyciem Selenium stosuje się komenatrze Given-When-Then lub AAA?

    Odpowiedz
    • Ela Sądel napisał

      26 marca, 2021 o 6:36 pm

      Halko! Komentarze w kodzie są tylko informacją d [...] CAŁOŚĆ KOMENTARZA WIDOCZNA DLA SUBSKRYBENTÓW.

      Odpowiedz

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
Av. de las Postas 21 6 C
29014 Málaga
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