implementation our first webdriver script selenium webdriver tutorial 10
W poprzednich dwóch samouczkach zapoznaliśmy Cię z podstawową architekturą i funkcje WebDriver i infrastruktura wymagana do rozpoczęcia korzystania z Selenium WebDriver . Zakładając, że wszyscy mogliście skonfigurować system ze wszystkimi niezbędnymi narzędziami i pakietami, posuniemy się dalej, wdrażając nasz pierwszy skrypt testowy WebDriver.
Dlatego idąc naprzód z konsekwencją Samouczek dotyczący Selenium WebDriver , będziemy tworzyć skrypt WebDriver. Chcielibyśmy również rozproszyć światło na podstawowym i powszechnie używanym Polecenia WebDriver . Dowiedzielibyśmy się również o lokalizowanie strategii elementów UI i ich włączenie do skryptów testowych. Przeanalizowalibyśmy również szczegółowo Pobierz polecenia.
Czego się nauczysz:
- Tworzenie skryptów
- Opis kodu
- Wykonanie testu
- Lokalizowanie elementów internetowych
- Typy lokalizatorów i ich składnia
- Wniosek
- rekomendowane lektury
Tworzenie skryptów
Do tworzenia skryptów używalibyśmy projektu „Learning_Selenium” utworzonego w poprzednim samouczku i „gmail.com” jako testowanej aplikacji (AUT).
Scenariusz:
- Uruchom przeglądarkę i otwórz „Gmail.com”.
- Sprawdź tytuł strony i wydrukuj wynik weryfikacji.
- Wprowadź nazwę użytkownika i hasło.
- Kliknij przycisk Zaloguj się.
- Zamknij przeglądarkę internetową.
Krok 1: Utwórz nową klasę Java o nazwie „Gmail_Login” w projekcie „Learning_Selenium”.
Krok 2: Skopiuj i wklej poniższy kod w klasie „Gmail_Login.java”.
import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.firefox.FirefoxDriver; public class Gmail_Login { /** * @param args */ public static void main(String() args) { // objects and variables instantiation WebDriver driver = new FirefoxDriver(); String appUrl = 'https://accounts.google.com'; // launch the firefox browser and open the application url driver.get(appUrl); // maximize the browser window driver.manage().window().maximize(); // declare and initialize the variable to store the expected title of the webpage. String expectedTitle = ' Sign in - Google Accounts '; // fetch the title of the web page and save it into a string variable String actualTitle = driver.getTitle(); // compare the expected title of the page with the actual title of the page and print the result if (expectedTitle.equals(actualTitle)) { System.out.println('Verification Successful - The correct title is displayed on the web page.'); } else { System.out.println('Verification Failed - An incorrect title is displayed on the web page.'); } // enter a valid username in the email textbox WebElement username = driver.findElement(By.id('Email')); username.clear(); username.sendKeys('TestSelenium'); // enter a valid password in the password textbox WebElement password = driver.findElement(By.id('Passwd')); password.clear(); password.sendKeys('password123'); // click on the Sign in button WebElement SignInButton = driver.findElement(By.id('signIn')); SignInButton.click(); // close the web browser driver.close(); System.out.println('Test script executed successfully.'); // terminate the program System.exit(0); } }
Powyższy kod jest odpowiednikiem przedstawionego wcześniej scenariusza tekstowego.
Opis kodu
Import wyciągów:
import org.openqa.selenium.WebDriver; import org.openqa.selenium.firefox.FirefoxDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.By;
Przed właściwym skryptowaniem musimy zaimportować powyższe pakiety:
import org.openqa.selenium.WebDriver - Odwołuje się do interfejsu WebDriver, który jest wymagany do utworzenia wystąpienia nowej przeglądarki internetowej.
import org.openqa.selenium.firefox.FirefoxDriver - Odwołuje się do klasy FirefoxDriver, która jest wymagana do utworzenia instancji konkretnego sterownika przeglądarki Firefox w instancji przeglądarki utworzonej za pomocą interfejsu WebDriver.
import org.openqa.selenium.WebElement - Odwołania do klasy WebElement, która jest wymagana do utworzenia wystąpienia nowego elementu WWW.
import org.openqa.selenium.By - Odwołania do klasy By, dla której wywoływany jest typ lokalizatora.
W miarę rozwoju naszego projektu jest oczywiste i logiczne, że być może będziemy musieli wprowadzić kilka innych pakietów dla bardziej złożonych i odrębnych funkcji, takich jak manipulacje w programie Excel, łączność z bazą danych, logowanie, asercje itp.
jak wykonać cross-site scripting
Tworzenie instancji obiektu
Sterownik WebDriver = nowy FirefoxDriver ();
Tworzymy zmienną referencyjną dla interfejsu WebDriver i tworzymy jej instancję przy użyciu klasy FirefoxDriver. Zostanie uruchomiony domyślny profil Firefoksa, co oznacza, że żadne rozszerzenia i wtyczki nie będą ładowane z instancją przeglądarki Firefox i że działa ona w trybie awaryjnym.
Uruchomienie przeglądarki internetowej
driver.get (appUrl);
DO otrzymać() jest wywoływana w instancji WebDriver w celu uruchomienia nowej instancji przeglądarki internetowej. Sekwencja znaków ciągu przekazana jako parametr do otrzymać() metoda przekierowuje uruchomioną instancję przeglądarki internetowej na adres URL aplikacji.
Maksymalizuj okno przeglądarki
driver.manage (). window (). maximize ();
Plik Wyolbrzymiać() służy do maksymalizacji okna przeglądarki zaraz po ponownym przekierowaniu na adres URL aplikacji.
Pobierz tytuł strony
driver.getTitle ();
Plik getTitle () służy do pobierania tytułu bieżącej strony internetowej. W ten sposób pobrany tytuł może zostać załadowany do zmiennej łańcuchowej.
Porównanie wartości oczekiwanych i rzeczywistych:
if (expectedTitle.equals(actualTitle)) { System.out.println('Verification Successful - The correct title is displayed on the web page.'); } else { System.out.println('Verification Failed - An incorrect title is displayed on the web page.'); }
Powyższy kod wykorzystuje konstrukcje instrukcji warunkowej java do porównania wartości rzeczywistej i oczekiwanej. Na podstawie uzyskanego wyniku zostanie wykonana instrukcja print.
Tworzenie instancji WebElement
Nazwa użytkownika WebElement = driver.findElement (By.id („Email”));
W powyższej instrukcji tworzymy instancję odwołania WebElement przy pomocy „Driver.findElement (By.id („ Email ”))”. W ten sposób nazwa użytkownika może służyć do odniesienia się do pola tekstowego wiadomości e-mail w interfejsie użytkownika za każdym razem, gdy chcemy wykonać na nim jakąś czynność.
Wyczyść polecenie
username.clear ();
Metoda / polecenie clear () służy do usuwania wartości znajdującej się w polu tekstowym, jeśli istnieje. Czyści również domyślną wartość zastępczą.
sendKeys Command
username.sendKeys („TestSelenium”);
Plik sendKeys () metoda / polecenie służy do wprowadzania / wpisywania określonej wartości (w nawiasach) w polu tekstowym. Zauważ, że plik sendKeys () metoda jest wywoływana w obiekcie WebElement, którego wystąpienie zostało utworzone za pomocą właściwości elementu odpowiadającej elementowi UI.
Powyższy blok kodu wprowadza ciąg „TestSelenium” w polu tekstowym Email w aplikacji Gmail.
pakiet oprogramowania najczęściej używany do tworzenia prostych wykresów to
sendKeys jest jednym z najczęściej używanych poleceń w skryptach WebDriver.
Kliknij polecenie
SignInButton.click ();
Lubić sendKeys (), kliknij () to kolejne nadmiernie używane polecenie do interakcji z elementami sieci. Kliknij() polecenie / metoda służy do kliknięcia elementu WWW znajdującego się na stronie internetowej.
Powyższy blok kodu klika przycisk „Zaloguj się” obecny w aplikacji Gmail.
Uwagi:
- W przeciwieństwie do metody sendKeys () metody click () nigdy nie mogą być parametryzowane.
- Czasami kliknięcie elementu internetowego może wczytać całkowicie nową stronę. Aby wytrzymać takie przypadki, metoda click () jest zakodowana w taki sposób, aby czekać na załadowanie strony.
Zamknij przeglądarkę internetową
driver.close ();
Close () służy do zamykania bieżącego okna przeglądarki.
Zakończ program Java
System.exit (0);
Metoda Exit () wymusza zakończenie działania programu Java. Dlatego pamiętaj, aby zamknąć wszystkie instancje przeglądarki przed zamknięciem Programu Java.
Wykonanie testu
Skrypt testowy lub po prostu program java można wykonać na następujące sposoby:
# 1. Pod paskiem menu Eclipse znajduje się ikona umożliwiająca wykonanie skryptu testowego. Patrz poniższy rysunek.
Zwróć uwagę, że zostanie wykonana tylko wybrana klasa.
#dwa. Kliknij prawym przyciskiem myszy w dowolnym miejscu klasy w edytorze, wybierz opcję „Uruchom jako” i kliknij „Aplikacja Java”.
jak używać zaćmienia dla c
# 3. Innym skrótem do wykonania skryptu testowego jest - Wciśnij ctrl + F11.
Pod koniec cyklu wykonywania polecenie print „Skrypt testowy został wykonany pomyślnie”. można znaleźć w konsoli.
Lokalizowanie elementów internetowych
Elementy sieci Web w WebDriver można zlokalizować i sprawdzić w taki sam sposób, jak robiliśmy to w poprzednich samouczkach Selenium IDE. Selenium IDE i Firebug mogą być używane do inspekcji elementu WWW w GUI. Zdecydowanie zaleca się użycie Selenium IDE do znalezienia elementów sieci. Po pomyślnym znalezieniu elementu WWW skopiuj i wklej wartość docelową w kodzie WebDriver. Typy lokalizatorów i strategie lokalizacyjne są prawie takie same, z wyjątkiem składni i ich zastosowania.
W WebDriver elementy sieci są lokalizowane za pomocą dynamicznych wyszukiwarek (findElement (By.locatorType („wartość lokalizatora”))).
Przykładowy kod:
driver.findElement (By.id („Email”));
Typy lokalizatorów i ich składnia
Typ lokalizatora | Składnia | Opis |
---|---|---|
cssSelector | driver.findElement (By.cssSelector („Selektor CSS”)) | Zlokalizuj według wartości selektor CSS |
ID | driver.findElement (By.id („ID_of_Element”)) | Zlokalizuj według wartości atrybut „id” |
Nazwa klasy | driver.findElement (By.className („Class_of_Element”)) | Zlokalizuj według wartości atrybut „class” |
tekst linku | driver.findElement (By.linkText („Text”)) | Zlokalizuj według wartości tekst hiperłącza |
częścioweLinkText | driver.findElement (By.partialLinkText („PartialText”)) | Zlokalizuj według wartości podtekst hiperłącza |
Nazwa | driver.findElement (Wg nazwy („Nazwa_Elementu”)) | Zlokalizuj według wartości Atrybut „nazwa” |
xpath | driver.findElement (Według.xpath („Xpath”)) | Zlokalizuj według wartości ścieżki xpath |
Nazwa znacznika | driver.findElement (By.tagName („input”)) | Zlokalizuj według wartości jego nazwa tagu |
Wniosek
W tym samouczku opracowaliśmy skrypt automatyzacji przy użyciu WebDriver i języka Java. Omówiliśmy również różne komponenty, które składają się na skrypt WebDriver.
Oto sedno tego samouczka Selenium WebDriver:
- Przed właściwym skryptowaniem musimy zaimportować kilka pakietów, aby móc stworzyć skrypt WebDriver.
- import openqa.selenium.By;
- import openqa.selenium.WebDriver;
- import openqa.selenium.WebElement;
- import openqa.selenium.firefox.FirefoxDriver;
- DO otrzymać() metoda używana do uruchamiania nowej instancji przeglądarki internetowej. Sekwencja znaków przekazana jako parametr do metody get () przekierowuje uruchomioną instancję przeglądarki internetowej na adres URL aplikacji.
- Plik Wyolbrzymiać() służy do maksymalizacji okna przeglądarki.
- Plik jasny() Metoda służy do wyczyszczenia wartości obecnej w polu tekstowym, jeśli istnieje.
- Plik sendKeys () Metoda służy do wprowadzenia określonej wartości w polu tekstowym.
- Kliknij() służy do kliknięcia elementu WWW znajdującego się na stronie internetowej.
- W WebDriver elementy sieci można zlokalizować za pomocą dynamicznych wyszukiwarek.
- Poniżej przedstawiono dostępne typy lokalizatorów:
- ID
- Nazwa klasy
- Nazwa
- xpath
- cssSelector
- tekst linku
- częścioweLinkText
- Nazwa znacznika
Idąc dalej, w następnym samouczku skupimy się na frameworku, który pomaga w testowaniu automatyzacji, znanym jako TestNG. Mielibyśmy szczegółowe badanie różnych rodzajów adnotacji dostarczanych przez ramy.
Następny samouczek nr 11 : Zanim zagłębimy się we frameworki, zobaczymy szczegóły dotyczące JUnit - narzędzia do testowania jednostkowego typu open source. Większość programistów używa JUnit, ponieważ jest to łatwe i nie wymaga wiele wysiłku, aby przetestować. Ten samouczek zapewni wgląd w JUnit i jego użycie w skrypcie seleniowym.
Uwaga dla czytelników: Podczas gdy nasz następny samouczek z serii Selenium jest w trybie przetwarzania, czytelnicy mogą rozpocząć tworzenie własnych podstawowych skryptów WebDriver. Aby uzyskać bardziej zaawansowane skrypty i koncepcje, będziemy mieć różne inne samouczki Selenium WebDriver, które pojawią się w tej serii.
Daj nam znać w komentarzach, jeśli masz jakiś problem z tworzeniem lub wykonywaniem skryptów WebDriver.
rekomendowane lektury
- Wprowadzenie do Selenium WebDriver - samouczek Selenium # 8
- Cucumber Selenium Tutorial: Integracja Cucumber Java Selenium WebDriver
- WebDriver Cała konfiguracja i instalacja z Eclipse - samouczek Selenium # 9
- Sprawdź widoczność elementów sieci Web przy użyciu różnych typów poleceń WebDriver - samouczek Selenium nr 14
- Efektywne skrypty Selenium i scenariusze rozwiązywania problemów - samouczek Selenium nr 27
- Jak radzić sobie z alertami / wyskakującymi okienkami w Selenium WebDriver - Samouczek Selenium nr 16
- Debugowanie skryptów Selenium za pomocą dzienników (samouczek Log4j) - samouczek Selenium # 26
- Wprowadzenie do JUnit Framework i jego wykorzystanie w skrypcie Selenium - Samouczek Selenium # 11