Pola tekstowe, przyciski oraz pobieranie informacji o stronie

Pola tekstowe (input) oraz przyciski (button) to jedne z najczęściej występujących elementów na stronach internetowych.

Poniżej przedstawię metody jakie udostępnia nam Selenium WebDriver do efektywnej pracy z tytułowymi elementami.

Metody do pracy z polami tekstowymi oraz przyciskami: sendKeys(), clear(), click()

Metody umożliwiające pobieranie informacji o stronie: getTitle(), getCurrentUrl(), getPageSource(), getText()

Listing 1.0

 

Na Listingu 1.0 mamy zaznaczone na czerwono pole do wpisywanie tekstu a na zielono  przycisk ‚lupki’ uruchamiający wyszukiwanie. Wszystkie przykłady będą dotyczyły strony internetowej: http://www.oecdbookshop.org/ i będą opierały się na poniższym kodzie:

 

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;

import java.util.concurrent.TimeUnit;


        public class TestElements {

            public static void main(String[] args) throws InterruptedException {

                System.setProperty("webdriver.chrome.driver", "C:\\Users\\Tomasz\\Documents\\seleniumChromeDriver\\chromedriver.exe");


                WebDriver driver = new ChromeDriver();
                driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
                driver.get("http://www.oecdbookshop.org/");

                WebElement searchInput = driver.findElement(By.id("qsearch"));
                searchInput.sendKeys("technology");
                searchInput.clear();
                searchInput.sendKeys("education");

                WebElement searchButton = driver.findElement(By.xpath(".//*[@id='searchform']/input[6]"));
                searchButton.click();

                driver.navigate().back();


                System.out.println("Title page: " + driver.getTitle());
                System.out.println("Current URL: " + driver.getCurrentUrl());
                System.out.println("Page Source: " + driver.getPageSource());


                WebElement youAccount = driver.findElement(By.linkText("Your Account"));
                youAccount.click();

                System.out.println("Title page: " + driver.getTitle());
                System.out.println("Current URL: " + driver.getCurrentUrl());
                System.out.println("Page Source: " + driver.getPageSource());

                WebElement headingElement = driver.findElement(By.xpath(".//*[@id='loginarea']/form[1]/fieldset/div/h1"));
                System.out.println("Heading text: " +  headingElement.getText());

                driver.quit();
            }
        }

 

sendKeys()

Za pomocą tej metody możemy przesyłać wartość tekstową do wskazanego pola tekstowego.

clear()

Metoda służąca do usuwania tekstu z pola tekstowego.

click()

Metoda pozwalając na interakcje z przyciskiem – jest to pojedynczy klik w przycisk.

getTitle()

Dzięki tej metodzie możemy pobrać tytuł strony na której się znajdujemy.

getCurrentUrl()

Metoda służąca to pobranie adres url strony.

getPageSource()

Metoda do pobierania źródła strony (struktury HTML)

getText()

Metoda pobierająca wartość tekstową ze wskazanych elementów na stronie

 

 

Lokalizujemy pole tekstowe wyszukiwarki

 

Przy pomocy metody sendKeys() przesyłamy do pola tekstowego (wcześniej zalkalizowany WebElement zapisany pod  nazwą searchInput) tekst „technology”

 

Z wykorzystaniem metody clear() usuwamy wcześniej wprowadzony do pola tekstowego ciąg znaków „technology”

 

W tym miejscu wstawiamy kolejny tekst w pole tekstowe

 

Lokalizujemy przycisk „lupki” dzięki któremu zatwierdzamy wyszukiwanie. W kolejnej linii wykorzystując funkcję click() – klikamy na przycisk i inicjalizujemy akcję wyszukiwania.

 

Ta funkcja powinna być już nam znana, gdyż opisywałem metody nawigacji  w przednich materiałach. Dzięki tej instrukcji cofamy się z ekranu na którym aktualnie jesteśmy do ekranu poprzedniego (w naszym przypadku cofamy się na ekran główny strony: http://www.oecdbookshop.org/

 

Poniższe 3 instrukcje to wypisanie w konsoli:

getTitle() – tytułu strony

getCurrentUrl() – adresu URL

getPageSource() – źródła strony (struktura strony HTML)

 

 

Lokalizujemy link „Your Account” i klikamy na niego, dzięki czemu przechodzimy na stronę logowania do naszego konta.

 

Na stronie logowania powtórnie wykonujemy 3 poniższe instrukcje, aby wypisać  tytuł strony, adres URL oraz źródło strony (należy zwrócić uwagę, że wypisujemy te dane nie na stronie głównej – jak w poprzedniej sytuacji, tylko tym razem wypisujemy te dane ze strony logowania.

 

Jak widzimy na Listingach 1.1 i 1.2 nasz output na konsoli jest bardzo obszerny i wielolinijkowy – to wszystko za sprawą tej linii kodu:

System.out.println(„Page Source: ” + driver.getPageSource());

To właśnie w tej linii wydaliśmy polecenie wydruku źródła strony, czyli wydruku struktury HTML witryny.  Dwie pierwsze linie w konsoli to jak widzimy tytuł strony oraz adres URL. Jako, iż pobraliśmy te informacje z dwóch różnych podstron to jak widzimy na kolejnym listingu mamy również informację o tytule, adres URL i źródle  ze strony logowania.

 

Listing 1.1

 

Listing 1.2

 

Na koniec przy pomocy funkcji getText() pobieramy tekst z nagłówka (nagłówek zaznaczony na Listingu 1.3) i następnie go wyświetlamy.

 

Listing 1.3

 

Po wykonaniu testu, widzimy w konsoli, że pobraliśmy i wyświetliliśmy tekst prawidłowo.

 

 

6 myśli na “Pola tekstowe, przyciski oraz pobieranie informacji o stronie”

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *